2011-03-03 7 views
1

リンクをクリックすると、リンクに含まれるdiv(およびその中の他のすべての要素)を削除するにはどうすればよいですか?リンクをクリックすると、外側の要素と外側の要素のすべてを削除する方法はありますか?

<div class="container"> 
    <div class="inner-container">Content</div> 
    <a class="remove-outer" href="">Link</a> 
</div> 

<div class="container"> 
    <div class="inner-container">Content</div> 
    <a class="remove-outer" href="">Link</a> 
</div> 

<div class="container"> 
    <div class="inner-container">Content</div> 
    <a class="remove-outer" href="">Link</a> 
</div> 

同じクラスのdivコンテナが3つあります。ユーザーがリンクをクリックしたときにコンテナからすべてを取り除くように、どうすればいいですか?上のリンクの1つをクリックすると、次のようになります。

<div class="container"> 
    <div class="inner-container">Content</div> 
    <a class="remove-outer" href="">Link</a> 
</div> 

<div class="container"> 
    <div class="inner-container">Content</div> 
    <a class="remove-outer" href="">Link</a> 
</div> 

私はかなり新しいです。一意のIDを持つ要素を削除する方法しか知りません。ユーザーがリンクの1つをクリックすると、すべてのコンテナがなくなるため、ここでその知識を適用することはできません。このような

答えて

2

これはそれを行う必要があります。

$(function(){ 
    $("a.remove-outer").click(function(){ 
     $(this).parent().remove(); 
    }); 
}); 

編集:新しく追加された要素にも機能が必要な場合は、liveを使用します。

$(function(){ 
    $("a.remove-outer").live("click", function(){ 
     $(this).parent().remove(); 
    }); 
}); 
+0

こんにちは、これは、ページが既に読み込まれているときに親要素が存在するが、JQueryを使用して新しい要素を追加した後でこの要素を削除しようとすると機能しません。 – Kelp

+0

@Kelp、更新されたコードを確認してください。 –

+0

それはうまくいきました、ありがとう。 – Kelp

0

何かがそれを行う必要があります。

$('a.remove-outer').click(function(e) { 
    e.preventDefault(); 

    $(this).closest('.container').remove(); // find the nearest ancestor element with the class container and remove it 
}); 
+1

なぜ$(this).closest( '。container')ですか?なぜちょうど$(this).parent()。remove()? –

+0

@Brian私は一般に、何らかの理由でDOMが変更された場合、ブレークする可能性が低いので、 'closest'を使用する方が好きです。 – lonesomeday

関連する問題