Javascript 如何在不同属性上使用jQuery执行AND

Javascript 如何在不同属性上使用jQuery执行AND,javascript,jquery,Javascript,Jquery,我的列表中有几个DIV标记,如下所示: <div status="1" searchText="some text">...</div> <div status="2" searchText="more text">...</div> <div status="1" searchText="even">...</div> if($(button).attr("active")=="true") { $(button

我的列表中有几个DIV标记,如下所示:

<div status="1" searchText="some text">...</div>
<div status="2" searchText="more text">...</div>
<div status="1" searchText="even">...</div>
if($(button).attr("active")=="true") {
    $(button).attr("active","false");  // turn off button 
    $('[status="'+status+'"]').hide(200);  // hide divs with status
} else {
    $(button).attr("active","true");  // turn on button
    $('[status="'+status+'"]').show(200);  // show dive with status
}
var val = elem.value;
$("div[searchText*='"+val+"']").show();
$("div[searchText]:not('div[searchText*=\'"+val+"\']')").hide(); 
$("div[searchText*='"+val+"']") AND $('[status="'+status+'"]')  then show()
我有一个新的要求通过搜索文本进行过滤。很简单,文本表单框设置了一个keyUp(),js如下所示:

<div status="1" searchText="some text">...</div>
<div status="2" searchText="more text">...</div>
<div status="1" searchText="even">...</div>
if($(button).attr("active")=="true") {
    $(button).attr("active","false");  // turn off button 
    $('[status="'+status+'"]').hide(200);  // hide divs with status
} else {
    $(button).attr("active","true");  // turn on button
    $('[status="'+status+'"]').show(200);  // show dive with status
}
var val = elem.value;
$("div[searchText*='"+val+"']").show();
$("div[searchText]:not('div[searchText*=\'"+val+"\']')").hide(); 
$("div[searchText*='"+val+"']") AND $('[status="'+status+'"]')  then show()
问题是,每一个都凌驾于另一个之上。如果我单击status 1按钮,无论搜索文本是什么,它都将显示(),反之亦然

如何在两个不同属性上执行AND?我需要这样的东西:

<div status="1" searchText="some text">...</div>
<div status="2" searchText="more text">...</div>
<div status="1" searchText="even">...</div>
if($(button).attr("active")=="true") {
    $(button).attr("active","false");  // turn off button 
    $('[status="'+status+'"]').hide(200);  // hide divs with status
} else {
    $(button).attr("active","true");  // turn on button
    $('[status="'+status+'"]').show(200);  // show dive with status
}
var val = elem.value;
$("div[searchText*='"+val+"']").show();
$("div[searchText]:not('div[searchText*=\'"+val+"\']')").hide(); 
$("div[searchText*='"+val+"']") AND $('[status="'+status+'"]')  then show()

只需按如下方式组合选择器:

$(“div[searchText*='”+val+'][status='“+status+']))


@kei所说的或您可以使用过滤器,例如:

$("div[searchText*='"+val+"']").filter('[status="'+status+'"]')

我想你只要把它们结合起来就行了。(“div[searchText*='“+val+']”][status='“+status+'”])