我目前正在为web应用程序的页面工作,该页面显示jQuery DataTable中的成员数据。我正在构建DataTable的自定义插件,该插件允许对每个表格列进行各种过滤。我可以从jQuery DataTable中检索列/搜索特定数据吗?
我目前的任务是能够从DataTable检索过滤的数据,虽然没有更新表上的数据。我已经知道可以通过做检索所有过滤的数据:
var data = $table.dataTable().$('tr', { filter: 'applied' });
这对于在搜索框中输入任何文字,并应用到列的任何过滤器获取数据。我也知道这个调用获取单元格的jQuery选择器。这就是我需要的。但我需要更多...
我的问题是:
我可以只申请什么在搜索框中获取数据,而不适用于列其他任何现有的过滤器?我试过:
var data = $ table.dataTable()。$('tr',{search:'applied'});
但是,返回与{filter:'applied'}相同。
是否可以将用于获取数据的特定列,例如:
VAR数据= $ table.dataTable()$( 'TR',{滤波器:'应用',列:[1,2,5]});
我可以定位特定列和搜索框中的内容吗?
我的插件需要能够跟踪应用了列/搜索过滤器的各种组合的数据。
+1一个伟大的答案!我可以看到我如何执行自己的搜索算法以实现我想要的结果。我曾考虑过这种方法,但希望{filter:'applied'}调用具有列和/或单个搜索值的参数。似乎并非如此。我想让我的插件适用于1.9和1.10以上的版本,所以我将无法使用新的API语法。 – Sebbo
@Sebbo,当你在你的问题中使用'filter:'applied''来获取搜索框中任何文本的数据和**应用于列的任何过滤器**,你的意思是**任何过滤器**搜索框?也许解决方案比我想象的更简单。 $ table.DataTable()。rows({search:'applied'}).nodes()。to $()'为你工作吗? –
我的意思是,如果单独应用于列的过滤器,比如'$ table.fnFilter('some filter text',columnIndex);'那么过滤器包含在'filter:'applied''中呼叫。现在我有一个解决方案(用于版本1.9),它将你的想法和其他逻辑结合起来。将您的标记为最佳答案。 – Sebbo