2013-07-02 120 views
1

這是我的代碼如何添加類的父元素

$("#AllProducts li id:contains('" + serial + "')").addClass("backRed"); 

我跨度背景變成紅色,但我需要我的整個麗來獲得背景紅色

<li class="ui-draggable" value="301" style="display: list-item;"> 
<id>ID:301</id> 
<br> 
14k Gold Hebrew Name Necklace 
<br> 
Serial:(101-01-001-01) 
<br> 
DefaultCat:(313) 
</li> 

所有工作正常,但任何一個知道爲什麼該產品獲得backRed過他李ID不是303而是defaulcat是303,但我檢查$(「#AllProducts李ID:包括()...不整李

<li class="ui-draggable backRed" value="1163" style="display: list-item;"> 
<id>ID:1163</id> 
<br> 
Personalized Double Thickness Silver Name Necklace 
<br> 
Serial:(101-01-073-04) 
<br> 
DefaultCat:(303) 
</li> 

回答

3

要選擇父用:

$("#AllProducts li span:contains('" + serial + "')").parent().addClass("backRed"); 

如果您希望父li使用.parent('li');

+1

'li'可能不是OP的選擇器的父代。 (當然,這是在示例標記中。) –

+1

@ T.J.Crowder這是非常真實的,但問題是「父母」 – raam86

3

使用closest

$("#AllProducts li span:contains('" + serial + "')").closest('li') 
    .addClass("backRed"); 

has

$("#AllProducts li").has("span:contains('" + serial + "')") 
     .addClass("backRed"); 

但是,第一個是在我看來更清晰,並且不使用中間可能重集合。

+0

...和':has'有問題。 :-) –

+0

@ T.J.Crowder哪類問題,表演者或其他什麼? –

+1

@roasted在我的第一個版本中,我使用了:而不是.has和:由於性能方面的原因,不推薦使用jQuery。 –

相關問題