【问题标题】:jquery multiple checkbox selector with not() and contains()带有 not() 和 contains() 的 jquery 多个复选框选择器
【发布时间】:2023-03-28 07:01:02
【问题描述】:

我有多个复选框,我读取并组合成一个逗号分隔的字符串。 使用该字符串,我想将所有内容隐藏在不包含此逗号分隔字符串的表中。 不同的复选框返回不同的值(72.0 x 102.0、64.0 x 90.0、90.0 x 64.0) 我的代码:

$('#kbafilter input[type="checkbox"]').click(function(){
       contain=$('#kbafilter :checked').map(function() {return ':contains("' + this.value + '")';}).get().join(',');
       alert(contain);
       if($(this).is(':checked')){
            $('#orderlist tbody tr:not(' + contain +')').hide();
        }
        else{
            $('#orderlist tbody tr:not(:contains(' + $(this).val() + '))').show();
        }
    });

此代码不起作用,它只会显示与选中的第一个复选框匹配的内容,但如果我将 TRUE 的 IF 更改为

    $('#orderlist tbody tr:not(:contains("72.0 x 102.0"),:contains("64.0 x 90.0"))').hide();    //working

那么我的表将只包含那些包含“72.0 x 102.0”或“64.0 x 90.0”的 TR

那么可能有什么问题。有效的包含行是直接从 alert() 弹出的内​​容复制而来的!?!?

最好的问候 尼古拉斯

【问题讨论】:

    标签: jquery contains


    【解决方案1】:

    试试这个

    JSFiddle

    $(function () {
        $('#kbafilter input[type="checkbox"]').click(function () {
            $('#orderlist tbody tr').show();
            if ($('#kbafilter :checked').length > 0) {
                contain = $('#kbafilter :checked').map(function () {
                    return ':contains("' + this.value + '")';
                }).get().join(',');
                $('#orderlist tbody tr:not(' + contain + ')').hide();
            }
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 2020-10-29
      • 2017-12-07
      • 1970-01-01
      相关资源
      最近更新 更多