#jquery #jquery-selectors
#jquery #jquery-селекторы
Вопрос:
Учитывая приведенный ниже HTML, какой код jQuery позволяет получить все непустые списки и распечатать их элементы списка?
<div id="list1" class="list">
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
</div>
<div id="list2" class="list">
<ul>
<li>item 4</li>
</ul>
</div>
<div id="list3" class="list">
<!-- intentionally empty -->
</div>
Если возможно, я бы хотел, чтобы селектор возвращал только непустые списки. В этом примере селектор вернул бы list1
и list2
, а затем печатаются их значения: [item 1, item 2, item 3], [item 4]
. Я представляю что-то вроде этого:
$('div .list [count(li) > 0]').each(function(items) { $.debug(items); });
Ответ №1:
Вот так:
var $nonEmptyLists = $("ul:has(li)");
Приведенный выше код выбирает «все элементы ul, у которых есть хотя бы 1 дочерний элемент li»
Для их печати:
$nonEmptyLists.each(function() { $.debug( this ); });
Ответ №2:
Я думаю, что что-то вроде этого должно сработать : $("ul:has(li)").each(...)
Обновление: если вы хотите получить li, а не ul, это должно быть больше похоже
$("div.list ul:has(li) li").each(...)