MutationRecord: target Eigenschaft
Die schreibgeschützte Eigenschaft target
des MutationRecord
ist das Ziel (d.h. der mutierte/geänderte Knoten) einer Mutation, die mit einem MutationObserver
beobachtet wird.
Wert
Der Node
, den die Mutation beeinflusst hat.
Beispiele
Das Ziel einer Mutation protokollieren
Im folgenden Beispiel gibt es zwei Divs: ein rotes Div (#red-div
) und ein blaues Div (#blue-div
), innerhalb eines Container-Divs #container
. Ein MutationObserver
wird erstellt, um den Container zu beobachten. Der Beobachter überwacht Änderungen an der Kinderliste und hat auch subtree: true
, sodass er Änderungen an den Kindern der Kinder des Containers beobachtet.
Der Rückruf des Beobachters protokolliert das target
des Mutationseintrags. Wenn wir Knoten zu #red-div
oder #blue-div
hinzufügen, wird das target
entsprechend #red-div
oder #blue-div
sein.
HTML
<pre id="log">Target of mutation:</pre>
<button id="add-nodes-to-red-div">Add a node to red div</button>
<button id="add-nodes-to-blue-div">Add a node to blue div</button>
<button id="reset">Reset</button>
<div id="container">
<div id="red-div"></div>
<div id="blue-div"></div>
</div>
JavaScript
const container = document.querySelector("#container");
const redDiv = document.querySelector("#red-div");
const blueDiv = document.querySelector("#blue-div");
const addToRed = document.querySelector("#add-nodes-to-red-div");
const addToBlue = document.querySelector("#add-nodes-to-blue-div");
const reset = document.querySelector("#reset");
const log = document.querySelector("#log");
addToRed.addEventListener("click", () => {
const newPara = document.createElement("p");
newPara.textContent = `Current time: ${Date.now()}`;
redDiv.appendChild(newPara);
});
addToBlue.addEventListener("click", () => {
const newPara = document.createElement("p");
newPara.textContent = `Current time: ${Date.now()}`;
blueDiv.appendChild(newPara);
});
reset.addEventListener("click", () => self.location.reload());
function logMutationTarget(records) {
for (const record of records) {
log.textContent = `Target of mutation: ${record.target.id}`;
}
}
const observer = new MutationObserver(logMutationTarget);
observer.observe(container, { childList: true, subtree: true });
Ergebnis
Spezifikationen
Specification |
---|
DOM Standard # ref-for-dom-mutationrecord-target② |
Browser-Kompatibilität
BCD tables only load in the browser