jQuery.die remove() -vs.- $('#id').remove() im Internet Explorer (IE 9+)

Warum ist es, dass this.remove() funktioniert nicht im IE9+?

<input type="button" value="Next1" id="nextButton1">
<br>
<input type="button" value="Next2" id="nextButton2">

$('#nextButton1').on('click', function() {
   this.remove(); //works in all browsers but IE9+
});

$('#nextButton2').on('click', function() {
   $('#nextButton2').remove(); //works in all browsers
});

JSFiddle live-version

versuchen Sie $(this).entfernen()
Sie scheinen anzunehmen, dass this ist ein jQuery-Objekt. Es ist nicht. Bitte Lesen Sie die jQuery-tutorial: "neben dem event-Objekt das event-handling-Funktion auch Zugriff auf das DOM-element, das den handler gebunden war, um über das Schlüsselwort this. Um die DOM-Elements in ein jQuery-Objekt, dass wir verwenden jQuery-Methoden auf, die wir einfach tun $( this ) oft nach diesem idiom: var element = $( this );"
Shim: if (!HTMLElement.prototype.remove) HTMLElement.prototype.remove = function() { return this.parentNode.removeChild(this) };

InformationsquelleAutor pemoke | 2014-06-18

Schreibe einen Kommentar