2016-07-31 74 views
1

我試圖刪除<a>的父項,這是HTML:無法刪除父項

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

這是代碼:

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

但沒有發生,爲什麼? JSFIDDLE.

回答

0

(如在其他答覆中提到,而且你有可能使用e.target引用當前對象還您可以使用this)。所以不要傳遞事件e,您可以使用e.target傳遞當前單擊元素的對象,請查看下面的示例。

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

2

您正在將event對象傳遞給jQuery,而不是當前元素。使用this代替e您的處理程序中:

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

在上面的例子中,請注意e用於表示所發生的事件,而this用於表示該事件的目標元素

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