Javascript 不使用全局对象进行筛选
我有一个数据表,有时显示,有时隐藏。我在同一页上还有其他几个表格 datatables示例使用全局对象存储自定义函数Javascript 不使用全局对象进行筛选,javascript,jquery,datatables,Javascript,Jquery,Datatables,我有一个数据表,有时显示,有时隐藏。我在同一页上还有其他几个表格 datatables示例使用全局对象存储自定义函数$.fn.dataTable.ext.search。这很好,但会影响所有表 我找不到一种方法来为每个表提供搜索函数,而不将其添加到全局变量 以下是我到目前为止的情况: t.rows().data().filter( function(val, idx){ console.log("Value: " + JSON.stringify(val) + " at " + id
$.fn.dataTable.ext.search
。这很好,但会影响所有表
我找不到一种方法来为每个表提供搜索函数,而不将其添加到全局变量
以下是我到目前为止的情况:
t.rows().data().filter(
function(val, idx){
console.log("Value: " + JSON.stringify(val) + " at " + idx);
if(idx < 2) {return true;} return false;
})
从搜索函数接收的第一个参数是变量,它包含DataTable的完整配置和数据。这样,您就可以访问该表的 然后可以使用访问标记的节点(它返回表的DOM元素):
var tabletosearcharray=新数组(“示例2”);
$.fn.dataTable.ext.search.push(函数(设置、数据、数据索引){
var api=new$.fn.dataTable.api(设置);
var tableId=api.table().node().id;
if(tabletosearcharray.indexOf(tableId)=-1){
返回true;//不筛选此表。
}
var min=parseInt($('#min').val(),10);
var max=parseInt($('#max').val(),10);
var age=parseFloat(数据[3])| | 0;//将数据用于age列
如果((isNaN(最小值)和&isNaN(最大值))||
(伊斯南(分钟)&&age我添加了一个代码示例,它在概念上非常简单,我只需要能够指出我希望它使用哪些表以及忽略哪些表。看看我的编辑,我想使用类似的东西,但我不知道如何使行隐藏或显示。我可以得到我想要的表…我已经编辑了我的答案一个更好的示例,包括一个JSFIDLE。看看这是否是您所需要的。好吧,这很好。DataTables API似乎应该有一种方法将此筛选器附加到单个表,但如果是这样做的话,就这样做吧。我觉得很奇怪,我可以筛选行,但却不能像我的示例中那样对它们执行任何操作,但是您得到了要点。很高兴它对你有用!我建议你将上一次编辑回滚到第二版(单击“x分钟前编辑”,在第二版上链接“回滚”),因为该文本更清晰,将来可能更适合人们查看。
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex )
{
console.log(settings);
console.log(data);
console.log(dataIndex);
});