2014-02-13 118 views
1

我有元素列表。 檢查此列表是否包含值爲0的元素的最佳方法是什麼?列表是否包含具有特定值的項目?

<ul> 
<li><input type="hidden" value="0" name="Locations.Locations[0].LocationId" id="Locations_Locations_0__LocationId" class="selected-id"></li> 
<li><input type="hidden" value="1" name="Locations.Locations[1].LocationId" id="Locations_Locations_1__LocationId" class="selected-id"></li> 
<li><input type="hidden" value="2" name="Locations.Locations[2].LocationId" id="Locations_Locations_2__LocationId" class="selected-id"></li> 
</ul> 

在實施 - 檢查是否UL包含價值元素= 0

我嘗試使用$('li input.selected-id').each().. 其中i檢查每一個元素的值,但我不認爲這是最好的辦法

回答

3

您可以使用:has()以及attribute selector來選擇特定的li

嘗試,

$('li:has(input[value=0])') 

請仔細閱讀here更多地瞭解:has()選擇

+0

感謝您的回覆。我在我的項目中使用您的示例,但此示例返回元素,而不是布爾值。這是我的錯嗎? var isSelectedAll = $('。added-items-data:has(input [value = 0])',ctrlContext);' - 我的代碼 – user3296938

+0

@ user3296938它不會返回一個布爾值,如果你想檢查你可以使用像'$('li:has(input [value = 0])')。length> 0' –

+0

我不能在選擇器中使用:has selector? – user3296938

0

試試這個:

$('li input.selected-id').each(function(){ 
    return $(this).val() == 0; 
}); 
+1

感謝您的回覆。但正如我之前寫的,我不認爲這是最好的解決方案 – user3296938

0

有一對夫婦的方式。

還有的:has僞類的jQuery補充說:

var theLi = $("ul li:has(input[value=0])"); 

...但它的缺點是jQuery的不能用手查詢關閉瀏覽器內置的選擇器引擎。

你可以這樣說:

var theLi = $("ul input[value=0]").closest("li"); 

...不使用任何jQuery選擇添加,但走兩步。

相關問題