Как скрыть элементы, у которых нет следующих элементов с определенным классом? - PullRequest
0 голосов
/ 21 мая 2009

У меня есть следующий HTML, и я хочу скрыть все lsHeader, который не имеет следующих элементов с контактом класса, используя jquery.

<div id="B" class="lsHeader">B</div>
  <div id="contact_1" class="contact"> B.Contact1</b/>
  <div id="contact_2" class="contact"> B.Contact2</b/>
  <div id="contact_3" class="contact"> B.Contact3</b/>
  <div id="contact_4" class="contact"> B.Contact4</b/>
  <div id="contact_5" class="contact"> B.Contact5</b/>
<div id="C" class="lsHeader">C</div>
  <div id="contact_6" class="contact"> C.Contact6</b/>
  <div id="contact_7" class="contact"> C.Contact7</b/>
  <div id="contact_8" class="contact"> C.Contact8</b/>
  <div id="contact_9" class="contact"> C.Contact9</b/>
  <div id="contact_10" class="contact"> C.Contact10</b/>
<div id="D" class="lsHeader">D</div>
<div id="F" class="lsHeader">F</div>

Примечание

У lsHeader нет потомков, я хочу проверить, основываясь на следующих элементах.

Ответы [ 2 ]

4 голосов
/ 21 мая 2009

Что по этому поводу:

$(".lsHeader").each(function() {
    if (!$(this).next().is("div.contact")) {
        $(this).hide();
    }
});

В зависимости от ваших конкретных потребностей, вы можете заменить next на allAll.

1 голос
/ 21 мая 2009

Вы генерируете (X) HTML? Если так, то:

<style>.IsHeader.empty {display: none;}</style>
<div id="D" class="lsHeader empty">D</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...