2017-05-10 9 views
0

は、私はこのコードを持っていると仮定します。jQueryのフィルタ使用してCSSクラス/サブクラス

私はこのコードを試みたが、運:

$("div.notes").filter(".note.note-inner>.like").hide(); 

サブクラスのように持っているdivが隠れていないされていません。

UPDATE


私は.noteクラスを持つ要素ではない.inner-note likeのものを非表示にします。

+0

が@SpencerWieczorekええ、あなたが右、私はそれが間違って読みました。 –

+0

私の更新を親切にチェックしてください。これらの 'note 'は、モデルからのループを使用して動的に作成されます。 –

答えて

3

でフィルタを示すJSfiddleを作成し、この

$(".note > .inner-content.like").hide(); 

$(".note > .inner-content.like").show(); 

$(".note > .inner-content.unlike").hide(); 

$(".note > .inner-content.unlike").show(); 

を試すことができます。 .note.note-innerclass="note note-inner"の要素になります。彼らが上がらない「 - と.notes$.filter().notes

内の他の要素や子供を見つけるつもりされていないので、私はあなたが$("div.notes").find(".note > .like").hide();を意味だと思うが、あなたはまた、単に直接子孫セレクタの有無にかかわらず$('div.notes > .note > .like').hide()を行うことができ、唯一の1要素であり、あなたが共有したマークアップに必要です。

が子供の場合は.noteを削除する場合は、$("div.notes").find(".like").closest('.note').hide();を使用してください。それは.like.notesの中にあり、最も近い祖先をクラス.noteで見つけてそれを隠すでしょう。

$("div.notes").find(".like").closest('.note').hide();
<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>

+0

これは動作しますが、フィルタリングされた内容の間にスペースが残っていることに気付きました。それを隠す代わりに削除できますか? –

+0

@ChristianMarkフィルタリングされたコンテンツ間のスペースはどういう意味ですか? https:// codepen。io/anon/pen/qmxREE –

+0

私は各音符の固定サイズを持っていて、同じクラスのものをフィルタリングする必要があると仮定して、要素は隠されていますが、 –

0

.filter()のようなあなたが<div class="inner-content .."></div>要素にそれを適用したい、あなたはフィルタリングしようとしている要素に適用されます。

$("div.notes > .note > .inner-content").filter(".like").hide(); 

それとも単に

$("div.notes > .note > .inner-content.like").hide(); 

.note要素を除去するためにあなただけの親を取得することができます:

$("div.notes > .note > .inner-content.like").parent(".note").hide(); 
関連する問題