Javascript 不使用全局对象进行筛选

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

我有一个数据表,有时显示,有时隐藏。我在同一页上还有其他几个表格

datatables示例使用全局对象存储自定义函数
$.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); 
    });