如何使用与逻辑相关的OR逻辑过滤表列

Joe*_*Joe 5 javascript jquery filtering datatables

示例小提琴

我有一个html表:

_A_B_C_D_
|0|1|0|1|
|0|1|0|0|
|1|0|0|1|
Run Code Online (Sandbox Code Playgroud)

我想过滤非零列.使用jQuery dataTables(不是硬盘要求,正是我目前使用的)我执行以下过滤器:

// value is the column index, true simply informs the filter method to use regex
dataTable.fnFilter("[^0]", value, true); 
Run Code Online (Sandbox Code Playgroud)

但是,过滤多个列会创建AND过滤器.从而:

dataTable.fnFilter("[^0]", 0 /*A*/, true); 
dataTable.fnFilter("[^0]", 3 /*D*/, true); 
Run Code Online (Sandbox Code Playgroud)

会创建以下内容

_A_B_C_D_
|1|0|0|1|
Run Code Online (Sandbox Code Playgroud)

我需要OR行为,但会创建下表:

_A_B_C_D_
|0|1|0|1|
|1|0|0|1|
Run Code Online (Sandbox Code Playgroud)

其中A列非零 D列非零.我想不出用我当前的结构来实现这个的任何方法.

如何使用与逻辑相关的OR逻辑过滤表列?

Jam*_*mes 4

使用您的小提琴作为模型,我更新了它以提供我相信您想要的功能。

我在每次单击复选框时扩展数据表过滤:

$.fn.dataTableExt.afnFiltering.push(
    function (settings, data, index) {
        var s = [0, 3, 5]; // columns to filter
        for (var i=0; i < s.length; i++) {
            if (data[s[i]] != 0) return true;
        }
        return false;
    }
);
Run Code Online (Sandbox Code Playgroud)

完全集成到小提琴中:链接