Ich weiß, dass das Erweitern nativer DOM-Funktionen nicht immer die beste oder beliebteste Lösung ist, aber das funktioniert gut für moderne Browser.
Element.prototype.remove = function() {
this.parentElement.removeChild(this);
}
NodeList.prototype.remove = HTMLCollection.prototype.remove = function() {
for(var i = this.length - 1; i >= 0; i--) {
if(this[i] && this[i].parentElement) {
this[i].parentElement.removeChild(this[i]);
}
}
}
Und dann können Sie Elemente auf diese Weise entfernen
document.getElementById("my-element").remove();
oder
document.getElementsByClassName("my-elements").remove();
Hinweis: Diese Lösung funktioniert nicht für IE 7 und frühere Versionen. Lesen Sie mehr über die Erweiterung des DOM in diesem Artikel.
BEARBEITEN: Bei der Überprüfung meiner Antwort im Jahr 2019 hat node.remove()
geholfen und kann wie folgt verwendet werden (ohne das obige Polyfill):
document.getElementById("my-element").remove();
oder
[...document.getElementsByClassName("my-elements")].map(n => n && n.remove());
Diese Funktionen sind in allen modernen Browsern verfügbar (nicht in IE). Erfahren Sie mehr auf MDN.