如何在不同属性上使用jQuery进行AND操作

时间:2014-02-10 22:14:29

标签: javascript jquery

我在列表中有几个DIV标签:

<div status="1" searchText="some text">...</div>
<div status="2" searchText="more text">...</div>
<div status="1" searchText="even">...</div>

我根据状态显示/隐藏了一些按钮。 js看起来像这样:

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
}

我有一个新的要求按searchText过滤。很简单,使用keyUp()设置文本表单框,js看起来像这样:

var val = elem.value;
$("div[searchText*='"+val+"']").show();
$("div[searchText]:not('div[searchText*=\'"+val+"\']')").hide(); 

问题在于每一个都覆盖另一个。如果我点击状态1按钮,它将显示()无论搜索文本是什么,反之亦然。

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

$("div[searchText*='"+val+"']") AND $('[status="'+status+'"]')  then show()

2 个答案:

答案 0 :(得分:1)

只需组合选择器:

  
    

$( “DIV [SEARCHTEXT * = ' ”+ VAL +“'] [状态= ' ”+状态+“']”)

  

答案 1 :(得分:0)

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

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