我试图在DataTables中对已过滤列的结果求和。我已经查看了他们网站上提出的问题,人们使用this method取得了成功。
但是,类似的代码会产生' Uncaught TypeError:undefined不是函数。"
data = table._('td:nth-child(10)', {"filter": "applied"});
其中'表'是:
var table = $('#dataTable').DataTable({
// my initialization data
});
答案 0 :(得分:9)
_
(下划线函数)似乎在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()
也能很好地运作。