2016-07-31 12 views
1

entfernen Ich versuche, das übergeordnete Element eines <a> zu entfernen, ist dies die html:kann nicht übergeordnete Element

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

Und das ist der Code:

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

Aber nichts passiert, warum ? JSFIDDLE.

Antwort

0

(Sie this wie in der anderen Antwort erwähnt verwenden könnten, aber Sie haben auch die Möglichkeit, e.target zu verwenden, die auch auf das aktuelle Objekt verweisen). Anstatt das Ereignis e zu übergeben, können Sie das Objekt des aktuellen angeklickten Elements übergeben, indem Sie e.target verwenden. Überprüfen Sie das folgende Beispiel.

$(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

Sie übergeben das event Objekt an jQuery, nicht das aktuelle Element. Verwenden Sie this anstelle von e in Ihrem Handler:

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

In dem obigen Beispiel bemerkt, wie e verwendet wird, um das Ereignis zu repräsentieren, die aufgetreten sind, während this verwendet wird der Veranstaltung Zielelement darzustellen.

$(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>

Verwandte Themen