jQuery hide()具有特定类的所有元素,除了具有特定父级的元素

时间:2019-09-28 14:52:49

标签: jquery css

我的问题与此类似:Jquery hide() all elements with certain class except one。但是就我而言,我有一个特定的父母。

我尝试过:

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

slideNum作为父项的selBar不应被隐藏,但它会隐藏!

与流行的答案不同,我没有使用“ not”,因为条件是针对父级而不是元素本身。

2 个答案:

答案 0 :(得分:1)

您可以在not过滤器(https://api.jquery.com/not/)中使用函数 像这样:

   $('.slideNum').not(function () {
        return $(this).parent(".selBar").length !== 0;
    }).hide();

答案 1 :(得分:1)

您可以通过将父项用作选择器的一部分来使用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>

相关问题