Elemententfernung in JavaScript vereinfachen
Die Methode von JavaScript zum Entfernen von Elementen, bei der der übergeordnete Knoten gesucht und das Element dann manuell entfernt wird, kann scheinbar erscheinen schwerfällig. Dies wirft die Frage auf: Warum ist JavaScript auf diese Weise konzipiert?
Obwohl es technische Gründe geben kann, besteht eine Lösung darin, native DOM-Funktionen zu erweitern. Dieser Ansatz ist nicht für alle Fälle ideal, funktioniert aber in modernen Browsern gut.
Polyfill-Methode
Mit dem folgenden Code können Sie die Element- und NodeList-Prototypen erweitern So fügen Sie eine Entfernungsmethode ein:
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]); } } }
Mit dieser Erweiterung wird das Entfernen von Elementen noch einfacher als:
document.getElementById("my-element").remove();
Oder:
document.getElementsByClassName("my-elements").remove();
Während diese Lösung effektiv in modernen Browsern funktioniert, unterstützt sie Internet Explorer 7 und niedriger nicht.
Moderne Browserlösung
Glücklicherweise haben moderne Browser (außer IE) die Funktion node.remove() eingeführt. Mit dieser Funktion können Sie Elemente direkt entfernen, ohne dass eine Polyfüllung erforderlich ist.
So verwenden Sie node.remove():
document.getElementById("my-element").remove();
Oder:
[...document.getElementsByClassName("my-elements")].map(n => n && n.remove());
Dieser Ansatz wird in allen gängigen Browsern unterstützt, einschließlich Chrome, Firefox, Edge und Safari.
Das obige ist der detaillierte Inhalt vonWarum ist das Entfernen von JavaScript-Elementen so kompliziert und wie kann es vereinfacht werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!