javascript - 如何对特定数据表应用过滤器

标签 javascript jquery jquery-plugins datatables

是否可以将某个过滤器仅应用于一个数据表? 我有以下过滤器函数,我正在准备好文档中应用它,我不知道这是否是正确的过程,但作为副作用,所有数据表都将受到过滤器的影响。我只想影响 $('#productTable'),但此选择器似乎没有达到预期的效果。

//Filter Function in Stock 
//$('#productTable').
$.fn.dataTableExt.afnFiltering.push(function(oSettings, aData, iDataIndex) {
    var checked = $('#instock').is(':checked');
    var qntStock = 1; 
    var stockCol = 3; 

    if (!checked) {
        return true;
    }
    if (checked && aData[stockCol] > qntStock) {
        return true;
    }

    return false;
 });

是否可以仅将过滤器应用于特定表?我该如何实现这个目标?

编辑:

数据表初始化:

var oTable = $('#productTable').dataTable({
        "aoColumnDefs": [{
            "sClass": "my_class", 
            "aTargets": [4]
            }],
        "bAutoWidth": false,
        "iDisplayLength": 100,
        "fnDrawCallback": function() {
            $("td.my_class").editable(function(value, settings) 
            { 
                return(value);
            }, 
            {
                indicator : 'Save...',
                tooltip   : 'Click to Edit...'
            }
            );
        }
    });

最佳答案

您可以创建一个表数组来包含过滤器 - 然后在过滤器中检查当前表是否存在于该数组中......类似于:

// setup an array of the ids of tables that should be allowed
var allowFilter = ['productTable'];

$.fn.dataTableExt.afnFiltering.push(function(oSettings, aData, iDataIndex) {

    // check if current table is part of the allow list
    if ( $.inArray( oSettings.nTable.getAttribute('id'), allowFilter ) == -1 )
    {
       // if not table should be ignored
       return true;
    }
    var checked = $('#instock').is(':checked');
    var qntStock = 1; 
    var stockCol = 3; 

    if (!checked) {
        return true;
    }
    if (checked && aData[stockCol] > qntStock) {
        return true;
    }

    return false;
});

关于javascript - 如何对特定数据表应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11447934/

相关文章:

javascript - jquery窗口调整大小时出现错误

JavaScript length 方法总是返回一个 json 对象

javascript - 在 css 中检查用户分辨率?

javascript - 如何在控制台中处理标准输入 NodeJS?

支持多种格式的 jQuery Datepicker

jquery - 根据键盘输入选择单选按钮选项

javascript - Jquery 运动模糊

javascript - 单击元素时不会调用单击事件监听器

javascript - 如何使用jquery fadeToggle

javascript - 动态和永久地向您的页面添加元素 - Javascript/jQuery