列表是否包含具有特定值的项目?

时间:2014-02-13 11:36:36

标签: javascript jquery html html-lists

我有元素列表。 检查此列表是否包含值为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().. 我检查每个元素值,但我不认为这是最好的方式

3 个答案:

答案 0 :(得分:3)

您可以使用li:has()来选择特定的attribute selector

尝试,

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

请阅读 here ,详细了解:has()选择器

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

有两种方法。

jQuery添加了:has伪类:

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

...但它的缺点是jQuery无法将查询交给浏览器的内置选择器引擎。

你可以这样做:

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

...它不使用任何jQuery选择器添加,但确实需要两个步骤。