Скрыть родительский, если для дочернего диапазона установлено отображение: нет - PullRequest
1 голос
/ 19 февраля 2012

Я просмотрел большинство похожих постов JQuery, касающихся скрытия родительских контейнеров, но ни один из этих вариантов не помог мне.

В двух словах у меня есть следующий код

<div id="pagination" class="pagination">
  <span class="previous disabled">« Previous</span>
  <span class="next disabled">Next »</span>
</div>

* Не мое кодирование, кстати: -p

В настоящее время div нумерации страниц (выше) в моем магазине пуст - это происходит из-за того, что нумерация страниц не была запущена, чтобы показать предыдущий и следующий промежутки в приведенном выше коде. Вы можете видеть, что у них есть имя класса .disabled, которое просто устанавливает эти диапазоны для отображения: нет.

Я хотел бы создать функцию Jquery, которая скрывает родительский div #pagination, когда для дочернего span.previous и span.next задано значение .disabled.

Спасибо за вашу помощь в продвинутом!

Ответы [ 3 ]

0 голосов
/ 20 февраля 2012

Моим первым подходом, если бы я не писал «логический» код, было бы изменить значение по умолчанию: скрыть родительский элемент и показать его, только если ни один из дочерних элементов не отключен. С jQuery это просто:

<div id="pagination" class="pagination" style="display:none"> TEST
  <span class="previous disabled">« Previous</span>
  <span class="next disabled">Next »</span>
</div>​

$(':has(:not(span.disabled))').css('display', 'block');​
0 голосов
/ 20 февраля 2012

Вы можете сделать

$('.pagination').each(function(){
   var $this = $(this);
    if($('span.next', this).hasClass('disabled') && $('span.previous', this).hasClass('disabled')){
       $this.hide();
    }
});

скрипку здесь http://jsfiddle.net/hwrx2/

0 голосов
/ 20 февраля 2012

Это не проверено:

$(".pagination:has(.previous.disabled):has(.next.disabled)").hide();

или

$(".pagination").has(".previous.disabled").has(".next.disabled").hide();
...