jquery DataTables.如何获取过滤(可见)行

Yur*_*uri 18 jquery datatables

我有一个按钮,将过滤器应用于jquery数据表

$("#buttonFilter").button().click(function() {
                if (lboxColor.val() != null) {
                    jqTable.fnFilter($("option:selected", lboxColor).text(), 1);
                }
            });
Run Code Online (Sandbox Code Playgroud)

它向我展示了例如来自60的47行.我尝试了.fnGetData()和fnGetNodes()但是它显示了所有行,但没有过滤.我怎么能得到47行?

Jac*_*ack 26

对于使用DataTables 1.10+的任何人,如果你想获得过滤的(更好的术语:"搜索")行,我一直在寻找大约一个小时:

var table = $('.table').DataTable({...});

function selectOnlyFiltered(){
   var filteredRows = table.rows({filter: 'applied'});
}
Run Code Online (Sandbox Code Playgroud)


Ray*_*ess 18

对于数据表1.9及更高版本,此解决方案有效:

myDataTableHandle = $('#example1').dataTable(...);
...
...
var myFilteredRows = myDataTableHandle._('tr', {"filter":"applied"});
Run Code Online (Sandbox Code Playgroud)

而且你不必包含一个单独的api插件.:)


Bed*_*uin 6

万一你想节点(DOM元素)就像fngetNodes()的集合,你可以用"$",而不是"_"这样的 table.$('tr', {"filter":"applied"});

在"_"返回"TR"(HTML元素)的集合.


Gav*_*ock -1

只是为了完整起见,正如 Yuri 提到的,有一些“插件”可以提供过滤后的TR 节点数据

要使用这些插件,您需要将这些链接中的代码粘贴到脚本文件中。