12

list_product如果单击该特定delete类,我将尝试删除整个块。我对 jquery 很陌生,还在学习。

<div class='list_product'>
    <div class='row'>
        <div class='delete'>x</div>
        <div class='title'>Standing Fan</div>
     </div>
</div>
<div class='list_product'>
    <div class='row'>
        <div class='delete'>x</div>
        <div class='title'>Standing Fan 2</div>
     </div>
</div>
<div class='list_product'>
    <div class='row'>
        <div class='delete'>x</div>
        <div class='title'>Standing Fan 3</div>
     </div>
</div>
<div class='list_product'>
    <div class='row'>
        <div class='delete'>x</div>
        <div class='title'>Standing Fan 4</div>
     </div>
</div>

查询:

$('.delete').click(function() {
   $(this).find('.list_product').remove();
});

不管用。我可以知道为什么以及如何解决它吗?谢谢

4

3 回答 3

25

做吧$(this).closest('.list_product').remove()
API ref: http://api.jquery.com/closest/
find搜索当前元素的子元素。在这种情况下,.delete元素没有任何子元素。相反,通过closestDOM向上,寻找具有 class 的第一个祖先list_product。希望这可以帮助。

于 2012-08-14T13:21:21.037 回答
5

试试这个:

$(document).on('click', '.delete', function(e) {
   e.preventDefault();
   $(this).closest('.list_product').remove();
   return false;
});
于 2012-08-14T13:26:14.813 回答
2

您可以在父元素上使用事件委托或使用Closest方法

最近很容易使用:

var id = $("button").closest("div").attr("id");
于 2012-08-14T13:25:03.563 回答