jQuery Datatable:使用搜索()匹配的记录数

jQuery Datatable:使用搜索()匹配的记录数,jquery,datatables,jquery-datatables,Jquery,Datatables,Jquery Datatables,我正在搜索我的数据表 声明如下: var dataTable = $(#dt).DataTable().search("searchpattern"); dataTable.draw(); 所以一切都很好,datatable只是显示与searchpattern匹配的条目 但是我怎样才能确定,有多少条目与模式匹配呢 我尝试了以下方法: dataTable.rows().nodes().length; 但返回的总是所有记录的数量,而不是匹配记录的计数。谢谢你在建议中的帮助 试试这样的方法: .

我正在搜索我的数据表

声明如下:

var dataTable =  $(#dt).DataTable().search("searchpattern");
dataTable.draw();
所以一切都很好,datatable只是显示与searchpattern匹配的条目

但是我怎样才能确定,有多少条目与模式匹配呢

我尝试了以下方法:

dataTable.rows().nodes().length;

但返回的总是所有记录的数量,而不是匹配记录的计数。谢谢你在建议中的帮助

试试这样的方法:

...
var total_row_count = dataTable.fnSettings().fnRecordsTotal();
var filtered_row_count = dataTable.fnSettings().fnRecordsDisplay();
console.log(total_row_count + " total rows filtered down to " + filtered_row_count);

您可以按照以下要求使用此功能:

dataTable.$('tr',{“filter”:“applied”}).length


从DataTables 1.10开始,使用
dataTable.page.info()
看起来是获取当前信息的最佳方式(处理/搜索/重新加载后)

所以

结果:

{
    "page": 1,
    "pages": 6,
    "start": 10,
    "end": 20,
    "length": 10,
    "recordsTotal": 57,
    "recordsDisplay": 57,
    "serverSide": false
}

info.recordsDisplay
是您需要的。参考:非常感谢!这非常适合我在DataTable上将deferRender设置为true的场景,因为我们可能会显示30000多行。接受的答案不适用于我的场景,因为我的一些行由于延迟渲染而尚未渲染。但是,recordsDisplay具有正确的数据。
{
    "page": 1,
    "pages": 6,
    "start": 10,
    "end": 20,
    "length": 10,
    "recordsTotal": 57,
    "recordsDisplay": 57,
    "serverSide": false
}