有没有办法从 jquery 数据表(jquery数据表 1.9)中删除过滤行?

Is there a way to delete filtered rows from jquery datatable (jquerydatatable 1.9)?

这是我的代码:

var companyTable =$('#companyTable').dataTable();
var filteredRows = companyTable._('tr', {"filter":"applied"})
filteredRows.forEach(function(item) {
    $('#companyTable').dataTable().fnDeleteRow(item);
});

它被删除了所有行,但最后一行被留下,它显示错误,如 Uncaught TypeError: Cannot read 属性 'nTr' of undefined,有人可以帮助我吗。

问题终于解决了

        var companyTable =$('#companyTable').dataTable();

       //get all nodes of the datatable it returns all rows
        var allNodes = companyTable.fnGetNodes();

       //get filtered rows of datatable            
         var filteredRows = companyTable._('tr', {"filter":"applied"});
        var filteredArray= [];
        for(var i=0;i<filteredRows.length;i++) {
            var item = filteredRows[i];
            //am using some column to compare both 
            var column= item[1];
            filteredArray.push(column);
        }

        for (var i=0;i<allNodes.length;i++){
            var rowData = allNodes[i];
            var columnData= $(rowData).find('td:eq(0)').text();

            //if the node is in filtered data remove it..
            if(jQuery.inArray( columnData, filteredArray) != -1 ){

              //here i am removing the row
                var rowData = companyTable.fnDeleteRow(rowData);
             }
        }

您可以使用更简单的解决方案。 选择行时,使用 { filter : 'applied'}.

所以你的情况是:

companyTable.rows({ filter : 'applied'}).remove().draw();