我有一个列总计的代码,但我有已经有总数的子组。我可以将列中的每个数字总计除灰色总行数外吗?
var table = $('#datatable');
var leng = table.find("tr:first").children().length;
// add totals to new row
for (var i = 0; i < leng; i++) {
var total = api
.column(i)
.data()
.reduce(function (a, b) {
// return if it's not a value from the gray row
return intVal(a) + intVal(b);
});
// correct any html mistakes that slip through
if (isNaN(intVal(total)))
total = '';
table.find("tfoot tr:first th").eq(i).html(total);
};
答案 0 :(得分:2)
为什么不在:not
API方法上使用rows()
选择器,并根据剩余的行计算总和?非常小的示例,在回调中将col#1的总和添加到页脚:
var table = $('#example').DataTable({
drawCallback: function () {
var api = this.api(),
sum = 0;
api.rows(":not('.sgrouptotal')").every(function() {
sum += parseFloat(this.data()[0]);
});
$(api.column(0).footer()).text(sum);
}
});
演示 - &gt;的 http://jsfiddle.net/j38bmagj/ 强>
以上内容应该很容易扩展到多个列。计算与sum4 += this.data()[4]
相同的循环中col#4的总和,依此类推。
答案 1 :(得分:0)
这样做呢?
i = 0;
$('#datatable tr:first tr').each(function(key, value){
if(!$(this).hasClass("sgrouptotal"){
i += parseInt(value.text());
}
});