Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

MutationRecord: nextSibling-Eigenschaft

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Die schreibgeschützte Eigenschaft nextSibling eines MutationRecord ist der nächste Geschwisterknoten eines hinzugefügten oder entfernten Kindknotens des target eines MutationObserver.

Wert

Wenn dem target eines MutationObserver ein Knoten hinzugefügt oder daraus entfernt wird, ist der Wert der Node, der auf den hinzugefügten oder entfernten Knoten folgt: also der Knoten, der in der childNodes-Liste des Elternknotens unmittelbar nach ihm steht.

Der Wert ist null, wenn keine Knoten hinzugefügt oder entfernt wurden oder wenn der Knoten das letzte Kind seines Elternknotens ist.

Beispiele

Den nächsten Geschwisterknoten einer Mutation protokollieren

Bei jedem Klick auf die Schaltfläche wird ein Knoten hinzugefügt oder entfernt. Die Änderung erfolgt jedoch am Anfang des Zielelements, nicht am Ende. Anschließend protokolliert der Observer den textContent des nextSibling des betroffenen Knotens.

HTML

html
<button id="add-nodes">Add a node</button>
<button id="remove-nodes">Remove a node</button>
<button id="reset">Reset</button>

<pre id="log" class="log">Next sibling of updated node:</pre>
<div id="target"><p>Node #0</p></div>

JavaScript

js
const addNodes = document.querySelector("#add-nodes");
const removeNodes = document.querySelector("#remove-nodes");
const reset = document.querySelector("#reset");
const target = document.querySelector("#target");

addNodes.addEventListener("click", () => {
  const newPara = document.createElement("p");
  newPara.textContent = `Node #${target.childElementCount}`;
  target.insertBefore(newPara, target.firstChild);
});

removeNodes.addEventListener("click", () => {
  const oldPara = target.firstChild;
  if (oldPara) {
    target.removeChild(oldPara);
  }
});

reset.addEventListener("click", () => self.location.reload());

function logNextSibling(records) {
  for (const record of records) {
    if (record.type === "childList") {
      log.textContent = `Next sibling of updated node: ${record.nextSibling?.textContent ?? null}`;
    }
  }
}

const observer = new MutationObserver(logNextSibling);
observer.observe(target, { childList: true });

Ergebnis

Spezifikationen

Spezifikation
DOM
# ref-for-dom-mutationrecord-nextsibling②

Browser-Kompatibilität