无法删除父项

时间:2016-07-31 12:26:57

标签: javascript jquery

我试图删除<a>的父项,这是html:

<div>123321<a class="del" rel="32" href="#">X</a></div>

这是代码:

$(function()
{
    $('.del').click(function(e)
    {
        $(e).parent().remove();
    });
});

但没有任何事情发生,为什么? JSFIDDLE.

2 个答案:

答案 0 :(得分:2)

您将event对象传递给jQuery,而不是当前元素。使用this代替处理程序中的e

$(function() {
    $('.del').on('click', function(e) {
        e.preventDefault();
        $(this).parent().remove();
    });
});

在上面的示例中,请注意e如何用于表示发生的事件,而this用于表示事件的目标元素

&#13;
&#13;
$(function() {
    $('.del').on('click', function(e) {
        e.preventDefault();
        $(this).parent().remove();
    });
});
&#13;
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<div>123321<a class="del" rel="32" href="#">X</a></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

(您可以使用其他答案中提到的<!DOCTYPE HTML> <html> <body> <div> <label id="dynamicLbl_pathcontents">path contents:</label> <span id="PathContents"> <ul> <li>backups</li> <li>FilesAndFolders.php</li> </ul> </span> </div> </body> </html>,但您也可以使用引用当前对象的this。因此,您可以使用e.target传递当前点击元素的对象,而不是传递事件e,请查看以下示例。

&#13;
&#13;
e.target
&#13;
$(function() {
    $('.del').on('click', function(e) {
        $(e.target).parent().remove();
    });
});
&#13;
&#13;
&#13;