如何从 jQuery Datatable 中获取过滤后的数据结果集

Posted

技术标签:

【中文标题】如何从 jQuery Datatable 中获取过滤后的数据结果集【英文标题】:How to get filtered Data result set from jQuery Datatable 【发布时间】:2016-01-15 03:46:58 【问题描述】:

如果有人在这个问题上帮助我,那就太好了。

我只是想从数据表中获取过滤后的结果集。

下面是我的代码。

var filtered_row_data = $('#example').DataTable().column(1).search('186').data().unique().sort();

 console.log(JSON.stringify(filtered_row_data));

它只返回所有行而不是过滤值。

我正在使用最新的稳定版 Datatable。

有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

请参阅数据表selector-modifiers。你正在寻找filter : 'applied'

table.on('search.dt', function() 
    //number of filtered rows
    console.log(table.rows(  filter : 'applied' ).nodes().length);
    //filtered rows data as arrays
    console.log(table.rows(  filter : 'applied' ).data());                                  
)  

演示 -> http://jsfiddle.net/h4wrmfx3/

【讨论】:

它的工作,但是当我使用它两次!,奇怪的是,当我点击搜索按钮并控制台它时,它显示我 10 记录但是当我再次点击搜索时它显示我 3(这是正确的不) .你能帮忙解决这个问题吗? @Rohit,你能用小提琴重现这个吗?尝试了上面的答案,它似乎按预期工作。 根据你的建议这是我的小提琴jsfiddle.net/RohitSavaliya2010/sz7w5uvr/1你能检查一下吗? @Rohit,好吧,它不起作用,只是一些脱离上下文的代码 :) 你可以获取上面的 jsfiddle.net/h4wrmfx3 并添加/修改然后更新或分叉。 @Manza 按照链接到datatables.net/reference/type/selector-modifier(与答案相同)【参考方案2】:

如果您正在使用服务器端过滤/搜索,这是我找到的唯一解决方案并且有效:xhr event

$('#yourTable').on('xhr.dt', function ( e, settings, json, xhr ) 
        //the new data is here json.data
        console.log(json.data);
);

【讨论】:

以上是关于如何从 jQuery Datatable 中获取过滤后的数据结果集的主要内容,如果未能解决你的问题,请参考以下文章

jquery datatable - 如何使用渲染函数从另一列获取数据

第 1 页后无法从 jquery DataTable 表行中获取属性值

如何从dataTable行集合中获取复选框输入值?

jquery datatable 如何获取隐藏列的值

我们如何在 jQuery Datatable 调用结果中启动另一个 jQuery 插件而不是页面就绪功能?

如何从jquery中的输入中获取精确值