javascript - 如何在 API 函数调用上下文中从数据表中获取搜索到的行

标签 javascript datatables

JSFiddle 对于这个问题:http://jsfiddle.net/nhg5ej4s/

我使用1.10.15版本的Datatables。

我在 API 中注册了这个 sum() 函数:

 $.fn.dataTable.Api.register('sum()', function () {
     var data = this.flatten().toArray();
     return data.reduce(function (a, b) {
         return (a * 1) + (b * 1); // cast strings
     }, 0);
 });

当我需要使用这个功能时,例如在 drawCallback 中页脚中更新总计的选项(请参阅 JSFiddle 了解上下文):

var table = $('#example').DataTable({
    drawCallback: function (settings) {
       var api = this.api();
       $(api.column(5).footer()).html('Total: ' + api.column(5).data().sum());
    }
});

该函数有效,但是当我通过任何搜索对表应用过滤器时,传递给 sum() 的值将采用所有行,而不是通过搜索过滤的行。

有办法在 sum() 函数中识别搜索上下文吗?

PS:在编写此问题时,我意识到我可以在列调用中传递一个选项,该选项将仅过滤搜索的行:api().column(5, {'search' : 'applied'}).data().sum() 但我决定保留这个问题,以了解是否有办法在 sum() 代码中执行此操作。 JSFidlle with this update

最佳答案

老实说,“搜索”:“应用”是你最好的选择,特别是当你进入分页时。如果您确实想在 sum() 函数中添加一些内容,您可以查看此内容以获取其他想法: Retrieving row data after filtering JQuery Datatables

关于javascript - 如何在 API 函数调用上下文中从数据表中获取搜索到的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44592425/

相关文章:

javascript - jQuery 数据表 - TableTools : hide row and columns while export

jQuery 数据表插件不删除表行

javascript - 将模态显示为普通 div - Reactstrap

javascript - 使用 HTML 标记设置文本格式,并从 JavaScript 中的字符串中删除不需要的文本

JavaScript:如何以编程方式确定网络 "fold"?

jquery - 使用附加参数更新服务器处理的 DataTables 源

sorting - 数据表 - 将其中一列格式化为货币

jquery - 向 jQuery 数据表添加刷新按钮

javascript - jQuery 循环查找值为 true 的最后一个数据属性并添加类

javascript - Article.createdAt.toLocalDateString 不是函数