对 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 footerCallback - 以另一个列值为条件