对 DataTables 中的过滤列求和

Posted

技术标签:

【中文标题】对 DataTables 中的过滤列求和【英文标题】:Summing a filtered column in DataTables 【发布时间】:2014-12-06 02:34:40 【问题描述】:

我正在尝试对 DataTables 中过滤列的结果求和。我查看了他们网站上提出的问题,人们使用this method 取得了成功。

但是,对我来说,类似的代码会产生“未捕获的类型错误:未定义不是函数。”

data = table._('td:nth-child(10)', "filter": "applied");

“表”在哪里:

var table = $('#dataTable').DataTable(
// my initialization data
);

【问题讨论】:

我觉得这很有帮助:datatables.net/examples/advanced_init/footer_callback.html 【参考方案1】:

_(下划线函数)似乎在 dataTables 1.10.x 中已被弃用。理论上它应该与$('#dataTable').dataTable()(旧构造函数)一起使用,但这并没有给出预期的结果(至少对我来说不是)。

但是看到这个 -> http://datatables.net/plug-ins/api/sum()

jQuery.fn.dataTable.Api.register( 'sum()', function () 
    return this.flatten().reduce( function ( a, b ) 
        return (a*1) + (b*1); // cast values in-case they are strings
    );
);

var table = $("#example").DataTable();

$("#example").on('search.dt', function() 
    console.log(table.column( 0, page:'current' ).data().sum() );
);

将在 dataTables 1.10.x 中提供与问题标题中相同的功能。

查看演示 -> http://jsfiddle.net/6qLwkwud/

table.column( 0, "filter": "applied" ).data().sum() 也非常好用。

【讨论】:

对于引用此内容的任何其他人,请查看datatables.net/reference/type/selector-modifier,它提供了更多信息,以防您仍然没有获得应用的数据集。

以上是关于对 DataTables 中的过滤列求和的主要内容,如果未能解决你的问题,请参考以下文章

DataTables 也应用列格式来过滤

DataTables footerCallback - 以另一个列值为条件

jQuery DataTables 仅过滤特定列

DataTables 列过滤器因 FixedHeader 失败

在 DataTables 列过滤选择上设置占位符

如何将 DataTables 列过滤器放在顶部