14

DIV内に含まれているリンクをクリックしたときに削除したいDIVがあります。これが私が持っているものです:

<div id="clients-edit-wrapper">
    <div class="close-wrapper">
        <a href="#" class="close-div">Close</a>
    </div>
</div>

「閉じる」をクリックclients-edit-wrapperすると、削除されます。Closeリンクの親DIV(この場合は。)を参照して、これを行う方法を探していますclients-edit-wrapper

どんな助けでも大歓迎です!


以下のHuangismからの回答:

$('.close-div').click(function(){
   $(this).parent().parent().remove();
});

これは、削除する要素が2つの親である場合にのみ機能します。私の場合、これはまさに私が必要としていたものです。

4

8 に答える 8

18

あなたのhtmlマークアップを与えられた

.on()に更新

$('.close-div').on('click', function(){
    $(this).closest("#clients-edit-wrapper").remove();
});

の柔軟性が増すと.closest、親を増やすか、親を減らすかを選択できます。

https://api.jquery.com/closest/

セット内の各要素について、要素自体をテストし、DOMツリーでその祖先をトラバースすることにより、セレクターに一致する最初の要素を取得します。

編集
(関連リソースを追加)live()
のjQueryドキュメントを参照してください

jQuery 1.7以降、.live()メソッドは非推奨になりました。.on()を使用して、イベントハンドラーをアタッチします。古いバージョンのjQueryのユーザーは、.live()ではなく.delegate()を使用する必要があります。

私の知る限り、これはメモリの問題/の問題によるものlive()です。

于 2012-06-15T20:47:58.187 に答える
9

これが1つの解決策です:

$(".close-div").on("click", function(event) {
    $("#clients-edit-wrapper").remove();
    event.preventDefault();
});

#clients-edit-wrapper要素を要素と比較して取得するには、次のいずれかまたはID.close-divを使用できます。parent().parent()closest

$(this).parent().parent().remove();                  // will do
$(this).closest("#clients-edit-wrapper").remove();   // the same

ただし、ページ要素のIDは一意である必要があり、別のIDは存在しないため、最後のIDは意味がありません#clients-edit-wrapper

于 2012-06-15T20:47:06.540 に答える
2
$(".close-div").click(function(){

    $("#clients-edit-wrapper").remove();

});
于 2012-06-15T20:47:32.700 に答える
1
$('#clients-edit-wrapper').find('.close-div').click(function(){
   $('#clients-edit-wrapper').remove();
});
于 2012-06-15T20:46:59.363 に答える
1

あなたも使うことができますclosest

$('.close-div').on('click', function(e) {
  e.preventDefault();
  $('#clients-edit-wrapper').remove();
});
于 2012-06-15T20:47:06.647 に答える
1

要素は親に基づいているので、イベントの委任をお勧めします。

$("#clients-edit-wrapper").on("click", ".close-div", function(e){
    e.preventDefault();
    $(e.delegateTarget).remove();
});
于 2012-06-15T20:48:42.523 に答える
1
<div id="clients-edit-wrapper">
    <div class="close-wrapper">
         <a href="#" onclick="$('#clients-edit-wrapper').remove();" class="close-div">Close</a>
    </div>
</div>
于 2012-06-15T20:49:00.717 に答える
-1
$('body').on('click','.close-div', function(){
  $(this).closest("#clients-edit-wrapper").remove();
});
于 2018-08-15T11:32:19.323 に答える