2014-02-13 5 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> 

В примере - проверить, если уль содержит элемент со значением 0.

Я пытаюсь использовать $('li input.selected-id').each().. , где я проверить каждое значение элемента, но я не думаю, что это лучший способ

ответ

3

Вы можете выбрать это li, используя :has() вместе с attribute selector.

Try,

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

Пожалуйста, прочитайте here, чтобы узнать больше о :has() селектор

+0

благодарит за ответ. Я использую ваш образец в своем проекте, но этот образец возвращает элемент, а не значение bool. Это моя вина? 'var isSelectedAll = $ ('. added-items-data: has (input [value = 0])', ctrlContext);' - мой код – user3296938

+0

@ user3296938 он не вернет логическое значение, если вы хотите проверить, что вы можете используйте как '$ ('li: has (input [value = 0])'). length> 0' –

+0

Я не могу использовать селектор в contex с: имеет селектор? – 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, но два шага.

Смежные вопросы