我正在尝试对DataTables中筛选后的列结果求和。我查看了他们网站上提出的问题和回答,发现有人使用这种方法成功。
但是,对于我来说,类似的代码会产生“未捕获的类型错误:未定义的函数”。
data = table._('td:nth-child(10)', {"filter": "applied"});
'table'是指:
var table = $('#dataTable').DataTable({
// my initialization data
});
我正在尝试对DataTables中筛选后的列结果求和。我查看了他们网站上提出的问题和回答,发现有人使用这种方法成功。
但是,对于我来说,类似的代码会产生“未捕获的类型错误:未定义的函数”。
data = table._('td:nth-child(10)', {"filter": "applied"});
'table'是指:
var table = $('#dataTable').DataTable({
// my initialization data
});
_
函数(即underscore函数)在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()
也完美地工作。