如何使用 OR 逻辑(而不是 AND)过滤表列

2024-05-04

小提琴示例 http://jsfiddle.net/fks37/

我有一个 html 表:

_A_B_C_D_
|0|1|0|1|
|0|1|0|0|
|1|0|0|1|

我要过滤non-zero列。使用 jQuery dataTables(不是硬性要求,只是我当前正在使用的),我执行以下过滤器:

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

但是,过滤多个列会产生AND筛选。因此:

dataTable.fnFilter("[^0]", 0 /*A*/, true); 
dataTable.fnFilter("[^0]", 3 /*D*/, true); 

将创建以下内容

_A_B_C_D_
|1|0|0|1|

I need OR行为将创建下表:

_A_B_C_D_
|0|1|0|1|
|1|0|0|1|

Where Column A非零OR Column D是非零的。我想不出任何方法可以用我目前的结构来实现这一点。

如何使用 OR 逻辑(而不是 AND)过滤表列?


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

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

$.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;
    }
);

完全集成到小提琴中:link http://jsfiddle.net/fks37/1/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 OR 逻辑(而不是 AND)过滤表列 的相关文章

随机推荐