jQuery DataTables - 迭代过滤的行并获取节点/隐藏列数据

时间:2018-04-09 10:53:13

标签: javascript jquery datatables

我在迭代它们时,一直试图抓住所有已过滤行的隐藏列数据。

        var table = $('#'+dataTableSelector).dataTable();

        table.$('tr', {"filter":"applied"}).each( function () {
            var row = this;
        });

显然row指的是数据表的TR实例;但是,如果我访问TR的子元素,则这些元素仅包含相关行的可见列。

我想访问相关行的所有数据,但是当我尝试引用数据表时,或者在每个函数中table.row(this).node()它都不起作用 - 行不是函数。

如何获取应用过滤器的行的所有数据?

2 个答案:

答案 0 :(得分:1)

$(dataTableSelector).DataTable().rows( { filter: 'applied' } ).every( function () {
    var row = this.data();
});

这将获取DataTable实例(其中dataTableSelector是HTML标记中的表ID),然后获取已应用过滤器的所有行,然后遍历所有这些行。

与所应用的过滤器不匹配的行(因此在您的DataTable中不可见)将不在rows( { filter: 'applied' } )

返回的结果范围内

您可以row[0]row[1]等访问该行的每一列; row将是所有列的数组,包括不可见的列。

答案 1 :(得分:0)

如果您使用DataRables API作为@Resurgent建议,则仍会返回隐藏列的数据。因此,如果想要数组中的数据,请使用该建议或table.rows({filter:'applied'}).data()之类的内容。