Цель пустая <li> - PullRequest
       6

Цель пустая <li>

0 голосов
/ 30 марта 2011

Я знаю, что этот вопрос должен быть простым для гуру jQuery, но я, честно говоря, понятия не имею, как этого добиться.

У меня есть следующий HTML:

<div class="panel_contents">
  <ul>
    <li><a href="#">A</a></li>
    <li><a href="#">B</a></li>
    <li></li>
    <li></li>
  </ul>
</div>

Мне нужно нацелиться на пустое <li> и присоединить к ним класс, например class = "empty" . Я не хочу изменять HTML-код, чтобы вручную добавлять классы для презентационных целей, если мне это не нужно.

Я начал JSFIDDLE здесь для демонстрационных целей.

Спасибо миллион за любую помощь с этим.

-

РЕДАКТИРОВАТЬ 3 [16.09.14]

Сегодня я признаю, что, возможно, использование jQuery может и не быть действительно необходимым, поскольку пустые элементы могут быть нацелены на CSS с помощью псевдоселектора :empty, который на самом деле довольно хорошо поддерживается во всех браузерах вплоть до IE8 (хотя частичная поддержка) - http://caniuse.com/#search=empty

РЕДАКТИРОВАТЬ 2

Вот Другое решение .

Это решение ищет <a href>s внутри <li>, если оно есть, оно НЕ добавит класс, если нет <a href>s, тогда добавляется класс empty .

РЕДАКТИРОВАТЬ 1

Спасибо Даниилу за решение. Вот РАБОЧАЯ ДЕМО

1 Ответ

12 голосов
/ 30 марта 2011

Используйте псевдо-селектор :empty.

$('li:empty').addClass('empty')
...