在DataTables中对筛选后的列求和

4

我正在尝试对DataTables中筛选后的列结果求和。我查看了他们网站上提出的问题和回答,发现有人使用这种方法成功。

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

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

'table'是指:

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

我发现这个链接很有用:https://datatables.net/examples/advanced_init/footer_callback.html - Ryan
1个回答

13

_函数(即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()也完美地工作。


5
如果有其他人参考此内容,请查看 https://datatables.net/reference/type/selector-modifier,其中提供了更多信息,以防您仍然不理解应用的数据集。 - Antony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接