JQuery селектор, чтобы получить все непустые списки и распечатать их - PullRequest
0 голосов
/ 02 мая 2011

Учитывая приведенный ниже 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); });

Ответы [ 2 ]

0 голосов
/ 02 мая 2011

Примерно так:

var $nonEmptyLists = $("ul:has(li)");

Приведенный выше код выбирает "все элементы ul, у которых есть хотя бы один дочерний элемент"

Для их печати:

$nonEmptyLists.each(function() { $.debug( this ); });
0 голосов
/ 02 мая 2011

Я думаю, что-то вроде этого должно сработать: $("ul:has(li)").each(...)

Обновление : если вы хотите получить li, а не ul, это должно быть больше похоже на

$("div.list ul:has(li) li").each(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...