我具有以下功能
footerCallback: function ( row, data, start, end, display ) {
var api = this.api();
// Remove the formatting to get integer data for summation
var intVal = function ( i ) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '')*1 :
typeof i === 'number' ?
i : 0;
};
var i;
for (i = 1; i <=96; i++) {
if (api.column(i).data().length){
console.log('[+] api.column( i ).data()');
console.log(api.column( i ).data());
var total = api.column( i ).data().reduce( function (a, b) {
console.log( intVal(a) + intVal(b));
return intVal(a) + intVal(b);
})
}
else {
total = 0
};
// Total over this page
if (api.column(i).data().length){
var pageTotal = api.column( i, { page: 'current'} ).data().reduce( function (a, b) {
return intVal(a) + intVal(b);
})
}
else{
pageTotal = 0
};
// Update footer
$( api.column(i).footer() ).html(total);
}
// Total over all pages
},
它将列中的值相加并将其添加到总计中。所以我有两个版本。一种有效,一种无效。两个页面中使用的代码完全相同
工作控制台。登录
控制台损坏。登录
错误:Uncaught TypeError: Reduce of empty array with no initial value
我注意到损坏的一个有红色文本,并且每个0或1都带有双引号。
奇怪的是....损坏的版本完成的工作与总数中显示的数字一样多,但是由于错误,页面仍然坏了
答案 0 :(得分:0)
删除以下内容有效-它未被使用,但仍然会引起问题
// Total over this page
if (api.column(i).data().length){
var pageTotal = api.column( i, { page: 'current'} ).data().reduce( function (a, b) {
return intVal(a) + intVal(b);
})
}
else{
pageTotal = 0
};