Сделать отображение контейнера: нет, когда содержимое <a>пусто - PullRequest
0 голосов
/ 31 декабря 2010

Я пытаюсь сделать следующее с помощью jQuery.

<ul><br />
<li>div>a>menu item<br />
<li>div>a>menu item<br />
<li>div>a><br />
<li>div>a>menu item<br />
</ul><br />
<br />

Когда содержимое> пусто, контейнер li> не должен отображаться.

<br />
<ul><br />
<li>div>a>menu item<br />
<li>div>a>menu item<br />
<li class="hidden">div>a><br />
<li>div>a>menu item<br />
</ul><br />

Кто-нибудь может мне помочь?

Ответы [ 4 ]

1 голос
/ 31 декабря 2010

Устанавливает css attibute 'display' в 'none' для всех тегов li, которые содержат пустой тег a:

$("ul a:empty").closest("li").css('display','none');

Если вы хотите изменить класс liчтобы скрыть, вы можете использовать:

$("ul a:empty").closest("li").addClass('hidden');
1 голос
/ 31 декабря 2010

Вы можете использовать селектор :empty на <a> и скрыть <li>, используя .closest() следующим образом:

$("ul a:empty").closest("li").hide();

или :has() как это:

$("ul li:has(a:empty)").hide();
0 голосов
/ 21 июля 2013

Вам даже не нужно использовать jQuery.

Я только что нашел эту ветку в поисках решения аналогичной проблемы и только что внедрил и протестировал исправление в простом CSS с помощью

ul a:empty {display:none !important;} 

Протестировано с текущими версиями FF (22), IE (10), Chrome (30) и FWIW, Windows-версия Safari 5.1.7.

PS: это будет работать на любом пустом селекторе CSS. Демонстрация с использованием div: empty в действии на http://new.3blindmiceusa.com/products/window-blinds/wood/ во всех моих всплывающих окнах с тенью.

Все изображения в верхней части имеют элементы заголовка на href, которые отображаются как заголовок на изображении, все значки на боковой панели для всплывающих контактных форм не имеют заголовка, поэтому заголовок div с фоном остается скрытым.

(я знаю, что мог бы закодировать это в собственный скин для shadowbox, но я старался не изменять этот код, кроме добавления виджета для обмена социальными сетями на каждую фотографию)

0 голосов
/ 31 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...