0

JS:

$(function(){
    $(".remove").click(function(){
        $("<need the right selector>").hide();
    });
});

HTML:

<div class="tag-collection">
    <div class="key">PULMONARY_EMBOLISM <span class="remove">✘&lt;/span></div>
</div>

我会用上面的 jQuery 代码来删除整个 div tag-collection。但是,我将tag-collection在页面上有很多 div,并且我想确保当有人单击删除按钮时,它只会删除tag-collection包含删除按钮的 div。

4

4 回答 4

4

如果你有很多,这将绑定更少的听众,所以它更“高效”/更轻量:

$(function(){
    $(document).on('click', 'span.remove', function() {
        $(this).closest('.tag-collection').hide();
    });
});
于 2012-08-17T17:46:22.507 回答
1
$(".remove").click(function(){
    $(this)  // points to clicked element
        .closest('.tag-collection') // jump to parent tag-collection
        .hide(); // hide that
});
于 2012-08-17T17:45:12.693 回答
1
$(function(){
    $(".remove").click(function(){
        $(this).parents('.tag-collection').hide();
    });
});

强调第 3 行。

编辑:正如 Kevin B 在下面所说,替换parents()closest()可能更好,因为那只会选择一个祖先。

于 2012-08-17T17:45:28.163 回答
1

您可以使用该closest方法,试试这个:

$(function(){
    $(".remove").click(function(){
        $(this).closest('.tag-collection').remove();
    });
});
于 2012-08-17T17:45:38.860 回答