You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataTables计算时间差列总和 搜索筛选后未重新计算问题

问题修复方案

根因说明

你当前调用api.column(3).data()时,默认返回的是该列的全部原始数据,不受搜索筛选、分页的影响,所以筛选后统计结果还是全量总和。

修复方法

只需要修改footerCallback中获取列数据的部分,给column方法加{search: 'applied'}参数,就可以仅获取筛选后的行数据,修改后的代码如下:

(function ($) {
 $(document).ready(function() {

    var table = $('#employeee1').DataTable({
      "footerCallback": function ( row, data, start, end, display ) {        
        var api = this.api(), data;
        // 新增{search: 'applied'}参数,仅统计筛选后的数据
        total = api
            .column(3, {search: 'applied'})
            .data()
            .reduce( function(cume, current, idx, api) {
              return addDurations(cume, current);
            }, "00:00:00" ); 
        $( api.column(3).footer() ).html(total);
      }
    });
  });
 })(jQuery); 

如果需要仅统计当前分页的筛选数据,可把参数改为{search: 'applied', page: 'applied'}即可。

额外优化建议

你当前引入了1.10.19、1.10.15两个不同版本的jQuery DataTables JS文件,可能会引发未知兼容性冲突,建议删掉其中一个重复引用。


内容的提问来源于stack exchange,提问作者Bruno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:39:04