2012-02-22 18 views
0

私は次のHTML構造を持っています(これは変更できません)。次の要素に達するまで、クラスを持つすべての要素を削除します。

私はそれが親子関係を持っていない、それぞれのdivは、それ自体であるので、私はへ .childrenを使用することはできません <div> Comment 2 &そのすべての「回答」のdiv(、(jQueryの/ JavaScriptで)、削除したい
<!-- Comment 1 --> 
<div class="ac_feed_item comments_v2_list" style="padding-left: 0px;"></div> <!-- Main Div --> 
<div class="ac_feed_item comments_v2_list reply" style="padding-left: 20px;"></div> <!-- Reply Div --> 
<div class="ac_feed_item comments_v2_list reply" style="padding-left: 40px;"></div> <!-- Reply Div --> 
<div class="ac_feed_item comments_v2_list reply" style="padding-left: 60px;"></div> <!-- Reply Div --> 

<!-- Comment 2 --> 
<div class="ac_feed_item comments_v2_list" style="padding-left: 0px;"></div> <!-- Main Div --> 
<div class="ac_feed_item comments_v2_list reply" style="padding-left: 20px;"></div> <!-- Reply Div --> 
<div class="ac_feed_item comments_v2_list reply" style="padding-left: 40px;"></div> <!-- Reply Div --> 

<!-- Comment 3 --> 
<div class="ac_feed_item comments_v2_list" style="padding-left: 0px;"></div> <!-- Main Div --> 
<div class="ac_feed_item comments_v2_list reply" style="padding-left: 20px;"></div> <!-- Reply Div --> 

DOMをトラバースする)。

しかし、<div> Comment 3が残るはずです(<div> Comment 1)。

だから基本的に、私はcomment 2とその.replyのすべて削除したい(子供ではありませんを、彼らは個々のdivです)。

私は、我々は削除したいコメントセクションの末尾にあるかどうかを確認するためにif() & .hasClass().next()のようなものを使用して考えていたが、これで問題を抱えていました。

+0

はHTML構造は常に同じですか?私。コメント1には3つの返信divがあり、コメント2には返信divが2つあり、コメント3には返信divが1つありますか? – j08691

+0

いいえ、それはコメントと返信の量によって変わります。上記は単なる例であり、柔軟性が必要です。 –

+0

コメントはどうですか?彼らはあなたの例のようにいつもそこにいるでしょうか? – j08691

答えて

3

.nextUntil()メソッドでJQueryを使用するとかなり簡単になります。 Documentation here.

この例はこのJSFiddleに含まれています。

コードは、次のいずれかです。

// On click of a div which is not of class .reply 
$('div.ac_feed_item.comments_v2_list:not(.reply)').click(function() { 
    // Remove all divs after this, until a div that does not have `.reply` class 
    $(this).nextUntil('div.ac_feed_item.comments_v2_list:not(.reply)').remove(); 
    // remove the main comment div 
    $(this).remove(); 
}); 

+0

http://jsfiddle.net/aexzm/ DIVとIDを渡しましたので、comment2を削除する方法を知ることができます。あなたは何が要素の削除を動かすかについてはっきりしないので、何らかの形で$( '#comment2')を$(これ)に変換すると仮定します。 –

+0

確かにこれをチェックしてください削除するには「メイン」をクリックします。 http://jsfiddle.net/S6vzU/ –

+1

+1。答えにデモを挿入... – gdoron

関連する問題