Start · Sprachen · JavaScript · Referenz · Node.removeChild()

Node.removeChild()

Methode

Entfernt einen Kindknoten aus dem DOM und gibt den entfernten Knoten zurück.

Kategorie: webapi

Signatur

removeChild(child)

Beschreibung

Die Methode removeChild() der Node-Schnittstelle entfernt einen Kindknoten aus dem DOM und gibt den entfernten Knoten zurück.

Solange eine Referenz auf das entfernte Kind gehalten wird, existiert es weiterhin im Speicher, ist jedoch nicht mehr Teil des DOM. Es kann später im Code weiterverwendet werden.

Wird der Rückgabewert von removeChild() nicht gespeichert und keine andere Referenz gehalten, wird er nach kurzer Zeit automatisch aus dem Speicher entfernt.

Im Gegensatz zu Node.cloneNode() bleiben beim Rückgabewert die zugehörigen EventListener-Objekte erhalten.

Ausnahmen:

  • NotFoundError DOMException – wird geworfen, wenn child kein Kind des Knotens ist.
  • TypeError – wird geworfen, wenn child gleich null ist.

Parameter

Name Typ Default Beschreibung
$child Pflicht Node — Ein Node, der das aus dem DOM zu entfernende Kindelement ist.

Rückgabewert

Typ
Node
Beschreibung
Der entfernte child-Knoten.

Beispiele

Ein Element entfernen, wenn der Elternknoten bekannt ist

const parent = document.getElementById("parent");
const child = document.getElementById("child");
const throwawayNode = parent.removeChild(child);

Ein Element entfernen, ohne den Elternknoten anzugeben

const node = document.getElementById("child");
if (node.parentNode) {
  node.parentNode.removeChild(node);
}

Alle Kinder eines Elements entfernen

const element = document.getElementById("idOfParent");
while (element.firstChild) {
  element.removeChild(element.firstChild);
}

Einen TypeError verursachen

const parent = document.getElementById("parent");
const child = document.getElementById("child");

// Wirft Uncaught TypeError
const garbage = parent.removeChild(child);

Einen NotFoundError verursachen

const parent = document.getElementById("parent");
const child = document.getElementById("child");

// Dieser erste Aufruf entfernt den Knoten korrekt
const garbage = parent.removeChild(child);

// Zweiter Aufruf wirft NotFoundError
parent.removeChild(child);