Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DataTables.net表列页脚和_Javascript_Jquery_Datatables_Jquery Datatables - Fatal编程技术网

Javascript DataTables.net表列页脚和

Javascript DataTables.net表列页脚和,javascript,jquery,datatables,jquery-datatables,Javascript,Jquery,Datatables,Jquery Datatables,在将每个列的总和值(类为“sum”)插入其页脚时,我遇到了一个小细节问题 代码(或多或少直接取自DataTables.net)如下: var table=$('#示例').DataTable(); 表.列('.sum')。每个(函数(el){ var总和=表 .列(el) .data() .减少(功能a、b){ 返回parseInt(a,10)+parseInt(b,10); }); $(el.html('Sum:'+Sum); });只有在初始化DataTable时才需要执行表操作代码(请参

在将每个列的总和值(类为“sum”)插入其页脚时,我遇到了一个小细节问题

代码(或多或少直接取自DataTables.net)如下:

var table=$('#示例').DataTable();
表.列('.sum')。每个(函数(el){
var总和=表
.列(el)
.data()
.减少(功能a、b){
返回parseInt(a,10)+parseInt(b,10);
});
$(el.html('Sum:'+Sum);

});只有在初始化DataTable时才需要执行表操作代码(请参见属性)

还要确保在
中定义了
块,否则将没有页脚

否则,您非常接近解决方案,请参见下面的更正代码:

var table = $('#ticketTable').DataTable({
    'initComplete': function (settings, json){
        this.api().columns('.sum').every(function(){
            var column = this;

            var sum = column
                .data()
                .reduce(function (a, b) { 
                   a = parseInt(a, 10);
                   if(isNaN(a)){ a = 0; }                   

                   b = parseInt(b, 10);
                   if(isNaN(b)){ b = 0; }

                   return a + b;
                });

            $(column.footer()).html('Sum: ' + sum);
        });
    }
});
有关示例,请参见

更新

还有一个属性允许您定义页脚显示回调函数,该函数将在每次“绘制”事件时调用

initComplete
footerCallback
之间的区别在于
initComplete
被调用一次,而
footerCallback
在每个“绘制”事件上都被调用


如果要显示整个表的总和,
initComplete
就足够了。否则,如果您需要在页脚中显示仅与当前页面相关的数据(如中),请使用
footerCallback

Mix。将空替换为0

"initComplete": function (settings, json) {
        this.api().columns('.sum').every(function () {
            var column = this;

            var intVal = function (i) {
                return typeof i === 'string' ?
                i.replace(/[\$,]/g, '') * 1 :
                    typeof i === 'number' ?
                        i : 0;
            };

            var sum = column
                .data()
                .reduce(function (a, b) {
                    return intVal(a) + intVal(b);
                });

            $(column.footer()).html('Sum: ' + sum);
        });
    }

创建一个js提琴并与我们分享。类似这样的事情:可能已经注意到一些可能相关或不相关的事情,但不管怎样。。。似乎一直在用JQuery以错误的顺序加载DataTables引导js。(根据类似的js错误:)。我切换了它们,现在样式发生了一些变化以指示进度,但是在任何列的tfoot元素中仍然没有求和值。'initComplete';)我是如此接近。谢谢你的回答!需要更新。此解决方案不适用于空白列。@Siteogra,请参阅示例。@Gyrocode.com不适用于我,它是否支持所有版本的数据表@FreddySidauruk,没有,只有1.10和更新版本。