jQuery数据表。如何获取已过滤(可见)的行

| 我有一个将筛选器应用于jquery数据表的按钮
$(\"#buttonFilter\").button().click(function() {
                if (lboxColor.val() != null) {
                    jqTable.fnFilter($(\"option:selected\", lboxColor).text(), 1);
                }
            });
例如,它显示了60的47行。 我尝试了.fnGetData()和fnGetNodes(),但它显示了所有行,但未过滤。 我怎么能得到47行?     
已邀请:
        我一直在搜索一个小时,对于使用DataTables 1.10+的任何人,如果您想获得过滤后的行(更好的术语:“ searched”),都可以:
var table = $(\'.table\').DataTable({...});

function selectOnlyFiltered(){
   var filteredRows = table.rows({filter: \'applied\'});
}
    
        对于数据表1.9及更高版本,此解决方案有效:
myDataTableHandle = $(\'#example1\').dataTable(...);
...
...
var myFilteredRows = myDataTableHandle._(\'tr\', {\"filter\":\"applied\"});
而且您不必包含单独的api插件。 :)     
        万一您想要像fngetNodes()这样的节点(DOM元素)集合,则可以使用\'$ \'代替\'_ \',例如this3ѭ \'_ \'返回\'TR \'(html元素)的集合。     
        对于那些感兴趣的人,这是一个具体的用例。
/**
 * Select all the elements of the datatable which match the current user
 * search (or all if no search).
 */
function dtable_selectAll()
{
    idTable = \'myDataTable\';
    var rows = $(\'#\' + idTable).dataTable()
            .$(\'tr\', {\"filter\":\"applied\"});
    var oTT = TableTools.fnGetInstance(idTable);
    $(rows).each(function (index, el){
        oTT.fnSelect(el);
    })
}
希望能帮助到你。     
        在当前版本中,选择器-修饰符使用一组稍有不同的属性。
var table = $(\'#example\').DataTable();
var rows = table.rows({\"search\" : \"applied\"});
您可以像这样遍历单元格数据:
table.rows({\"search\":\"applied\" }).every( function () {
    var data = this.data();
});
一些有用的链接: https://datatables.net/reference/api/rows() https://datatables.net/reference/type/selector-modifier https://datatables.net/reference/api/rows().every()     
        仅出于完整性考虑,正如Yuri所提到的,有一些“插件”将提供经过过滤的TR节点或数据。 要使用这些插件,您需要将这些链接中的代码粘贴到脚本文件中。     

要回复问题请先登录注册