Datatables 我可以从jQuery数据表中检索列/搜索特定数据吗?
我目前正在为一个在jQuery数据表中显示成员数据的web应用程序开发一个页面。我正在为DataTable构建一个自定义插件,它允许对每个表列进行广泛的过滤 我当前的任务是能够从DataTable中检索过滤后的数据,但不更新表中的数据。我知道通过执行以下操作可以检索所有过滤数据:Datatables 我可以从jQuery数据表中检索列/搜索特定数据吗?,datatables,Datatables,我目前正在为一个在jQuery数据表中显示成员数据的web应用程序开发一个页面。我正在为DataTable构建一个自定义插件,它允许对每个表列进行广泛的过滤 我当前的任务是能够从DataTable中检索过滤后的数据,但不更新表中的数据。我知道通过执行以下操作可以检索所有过滤数据: var data = $table.dataTable().$('tr', { filter: 'applied' }); 这将获取搜索框中任何文本的数据以及应用于列的任何筛选器。我还知道这个调用会获取单元格的jQu
var data = $table.dataTable().$('tr', { filter: 'applied' });
这将获取搜索框中任何文本的数据以及应用于列的任何筛选器。我还知道这个调用会获取单元格的jQuery选择器。这就是我需要的。但是我需要更多
我的问题是:
我的插件需要能够跟踪应用了各种列/搜索过滤器组合的数据。对于DataTables 1.9 有一个API方法,但它对表应用过滤,这不是您想要的 或者,您可能希望使用获取整个表的数据并自己进行筛选 用于数据表1.10 有一个API方法,但当与
draw()
一起使用时,它会对表应用过滤,这不是您想要的
还有API方法。这不完全是你要找的,但是非常接近,但是你需要自己执行搜索
您可以按如下方式检索搜索框的内容:
var searchVal=$('.dataTables\u filter input',$table).val();
然后您需要自己进行搜索,如下所示是一种过于简单的方法,可能与DataTables内部执行搜索的方式不匹配
要仅搜索第一列和第二列,请指定[0,1]
到列()
方法。如果未指定参数,则将搜索所有列
var filteredData=$table.DataTable()
.列([0,1])
.data()
.eq(0)
.过滤器(函数(值、索引){
returrn(value.search(新的RegExp(searchVal,“i”)!=-1)
?真:假;
} );
根据手册,变量filteredData
将包含一个新的API实例,其中包含通过回调测试的结果集的值
要检索所有列或选定列的数据,请使用。+1获得最佳答案!我可以看到我如何执行自己的搜索算法,以实现我想要的结果。我曾考虑过这种方法,但希望{filter:'applied'}调用具有列和/或单个搜索值的参数。看来情况并非如此。我想让我的插件适用于1.9和1.10+版本,因此我将无法使用新的api语法。@Sebbo,当你在问题中使用
filter时说:“applied”
获取搜索框中任何文本和应用于列的任何过滤器的数据,除了搜索框之外的任何过滤器是什么意思?也许解决办法比我想象的要简单。$table.DataTable().rows({search:'applied'}).nodes().to$()
是否适用于您?我的意思是,如果存在仅应用于列的筛选器,例如$table.fnFilter('some filter text',columnIndex))代码>然后该过滤器将包含在过滤器:“应用”调用中。现在,我有一个解决方案(针对1.9版),它将您的想法与其他一些逻辑结合起来。将你的答案标记为最佳答案。