使用CSS类/子类的jQuery过滤器

Chr*_*ark 2 css jquery

假设我有以下代码:

<div class="notes">
    <div class="note">
         <div class="inner-content like"></div>
    </div>
    <div class="note">
         <div class="inner-content unlike"></div>
    </div>
    <div class="note">
         <div class="inner-content unlike"></div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想要的是filter与子类类似的对象。

我尝试了这段代码,但没有运气:

$("div.notes").filter(".note.note-inner>.like").hide();
Run Code Online (Sandbox Code Playgroud)

具有子类的div没有隐藏。

更新


我想隐藏.note类的元素而不是隐藏的元素.inner-note like

Mic*_*ker 5

您没有.note-inner,选择器错误。.note.note-inner将是带有的元素class="note note-inner"。而且.notes只有1个元素,因此$.filter()不会在其中找到任何其他元素或子元素.notes

我认为您的意思是, $("div.notes").find(".note > .like").hide();但您也可以$('div.notes > .note > .like').hide()使用或不使用直接后代选择器-它们对于共享的标记不是必需的。

如果你想删除.note它是否有.like一个孩子,使用$("div.notes").find(".like").closest('.note').hide();。它将找到的.like内部.notes,然后找到与类最接近的祖先.note并将其隐藏。

$("div.notes").find(".like").closest('.note').hide();
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="notes">
  <div class="note">
         <div class="inner-content unlike">unlike</div>
    </div>
    <div class="note">
         <div class="inner-content like">like</div>
    </div>
    <div class="note">
         <div class="inner-content unlike">unlike</div>
    </div>
    <div class="note">
         <div class="inner-content unlike">unlike</div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)