2016-08-15 10 views
0

を削除します。jQueryのは、私は次のマークアップを持つ親リスト項目

次のJqueryは、1つ上のレベルを単にトラバースし、js-delete-classのliを削除します。投稿を削除するために追加レベルをどのようにトラバースするのですか?

$(".js-delete-post").click(function (e) { 
    var a = $(this); // "this" is the <a> 

    a.parents("li").fadeOut(function() { 
       $(this).remove(); 
    }); 
}); 

答えて

0

あなたはclosest代わりのparentsたいし、その後、あまりにもクラスでそれを選択します。あなたのケースでは

a.closest("li.media.post").fadeOut(function() { 
    $(this).remove(); 
}); 
0

あなたは両親を使い続けるかもしれませんが、あなたが探している要素のクラスを追加する必要があります:$(この).parents(「li.media.post」)

クラスがなければ、親は2つの要素を返します。

これは、これらの特性を持つ祖先要素が1つしかないために可能です。

$(function() { 
 
    $(".js-delete-post").on('click', function (e) { 
 
    e.preventDefault(); 
 

 
    $(this).parents("li.media.post").fadeOut(function() { 
 
     $(this).remove(); 
 
    }); 
 
    }); 
 
});
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script> 
 

 
<ul class="media-list"> 
 
    <li class="media post"> 
 
    <div class="media-left"> 
 
     <a href="#"></a> 
 
    </div> 
 
    <div class="media-body"> 
 
     <div class="post-content"> 
 
     <p></p> 
 
     </div> 
 
     <div class="post-actions clearfix"> 
 
     <ul class="list-unstyled list-inline"> 
 
      <li> 
 
      <a class="js-delete-post" data-post-id="24" href="#"> 
 
       Delete 
 
      </a> 
 
      </li> 
 
     </ul> 
 
     </div> 
 
    </div> 
 
    </li> 
 
    <li class="media post"> 
 
    ... 
 
    </li> 
 
</ul>

:私は、最も近い方法を提案するいずれの場合においても

関連する問題