Jquery hide () все элементы с определенным классом, кроме одного с определенным родителем - PullRequest
0 голосов
/ 28 сентября 2019

Мой вопрос похож на этот: Jquery hide () все элементы с определенным классом, кроме одного .Однако в моем случае у меня есть определенный родитель.

Я пытался:

$('.slideNum').hide();
$('#marginRight ul li.selBar.slideNum').show();

slideNum с selBar в качестве родителя не должен быть скрыт, но это так!

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

Ответы [ 2 ]

1 голос
/ 28 сентября 2019

Вы можете использовать not(), используя родительский элемент как часть селектора для фильтрации

$('.slideNum').not('.selBar *').hide();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="slideNum">Should be hidden</div>
<div class="selBar">
  <div class="slideNum">Should be visible</div>
</div>
1 голос
/ 28 сентября 2019

Вы можете использовать функцию без фильтра (https://api.jquery.com/not/), например:

   $('.slideNum').not(function () {
        return $(this).parent(".selBar").length !== 0;
    }).hide();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...