Dom-Element entfernen, ohne dessen Eltern zu kennen?
Ist es möglich, entfernen Sie ein dom-element hat kein übergeordnetes anderen als dem body-tag? Ich weiß, das wäre einfacher mit einem framework wie jquery, aber ich versuche zu bleiben, gerade javascript.
Hier ist der code, den ich gefunden habe, die es anders machen:
function removeElement(parentDiv, childDiv){
if (childDiv == parentDiv) {
alert("The parent div cannot be removed.");
}
else if (document.getElementById(childDiv)) {
var child = document.getElementById(childDiv);
var parent = document.getElementById(parentDiv);
parent.removeChild(child);
}
else {
alert("Child div has already been removed or does not exist.");
return false;
}
}
Dank!
InformationsquelleAutor der Frage Matrym | 2009-11-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie in der Lage sein, um das übergeordnete Element des Elements ist, dann entfernen Sie das element aus, dass
Update
Können Sie dies als eine neue Methode auf dem HTMLElement:
Tun, und dann
el.remove()
(die auch das element zurückgegeben werden)InformationsquelleAutor der Antwort Adam Hopkinson
Ich denke, man kann so etwas machen...
Sehen Knoten.parentNode für mehr info auf das.
InformationsquelleAutor der Antwort Robert K
funktioniert in Chrome 25.0.1364.155
Beachten Sie, dass dies nicht funktioniert im IE11 oder Opera Mini, sondern wird von allen anderen Browsern.
Siehe hier: Verweis auf childnode-entfernen auf caniuse
InformationsquelleAutor der Antwort swervo
InformationsquelleAutor der Antwort Gregoire
Entfernen von element mit
outerHTML
EigenschaftInformationsquelleAutor der Antwort vusan
Dieser Funktion entfernen Sie einfach ein element mit id:
InformationsquelleAutor der Antwort Saranga Jayaruwan
OK, Sie sind im Grunde nicht brauchen, zu wissen, die Eltern zu löschen, die ein DOM-element aus dem DOM, Blick auf den code unten, sehen, wie ist die Reihenfolge zu löschen, die ein node-element ist in JavaScript:
Element
+parentNode
+removeChild(Element);
Wie Sie sehen, finden wir das element zuerst, dann mit .parentNode und entfernen Sie dann das Kind, das das Element wieder, so dass wir nicht zu wissen brauchen die Eltern!
So, jetzt schauen der eigentliche code:
oder als eine Funktion
Auch jQuery remove () - Funktion ein, die weit verwenden, wie:
Gibt es auch native
ChildNode.remove()
was nicht im IE und ältere Browser, aber Sie können polyfill, suchen Sie die vorgeschlagenen polyfill von MDN:Wenn Sie möchten, um mehr darüber zu erfahren, besuchen Sie diese link auf MDN.
InformationsquelleAutor der Antwort Alireza