避免后端做太多的计算类的工作,则在前端进行统计操作。【如果您用的vue或者react等框架,请绕路~】

1.纯js 简单实现

table 加一个 <hr class="count></hr>

 

然后,js脚本如下:

$(function() {
		var table = document.getElementById("changeWidth");//获取table对象
		var rows = table.rows;//获取行对象
		var cells = table.cells;//获取列对象
		var colums = table.rows[0].cells.length;//获取列数
		$(".count").empty();//每次加载时清空小计,防止二次加载数据时出现多行小计
		$(".count").append("<td>小计</td>");
		//这里从列开始遍历,得到的就是每一列的数据
		//如果从行开始遍历,得到的就是每行的数据
		for (var j = 1; j < colums-1; j++) {
			var sum = 0;
			for (var i = 1; i < rows.length - 1; i++) {//从i=1第二行开始去掉表头,rows.length-1结束,去掉合计行
				var a = parseInt(rows[i].cells[j].innerHTML.trim());//获取每一列的值
				console.log(a);
				sum = sum + a; //计算
			}

			$(".count").append("<td>" + sum + "</td>");//给最后一行添加计算结果列
		}
	})


要注意的是 var a = parseInt(rows[i].cells[j].innerHTML.trim()) 确保单元格中没有其他的span一类的标签。如果有,对应的去修改获取方案 另外就是 j 和 i的值,注意去掉你不需要统计的部分。


方案2:使用boostrap的 footerFormatter()方法