我有多个复选框,我读取并组合成逗号分隔的字符串。 使用该字符串,我想隐藏不包含此逗号分隔字符串的表中的所有内容。 不同的复选框返回不同的值(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();
}
});
此代码不起作用,它只显示与选中的第一个复选框匹配的内容,但如果我将IF更改为TRUE
$('#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()弹出的地方复制的!?!?
祝你好运 尼克拉斯
答案 0 :(得分:0)
试一试
<强> 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();
}
});
});