TreeWalker

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Das TreeWalker-Objekt repräsentiert die Knoten eines Dokument-Teilbaums und eine Position innerhalb dieser.

Ein TreeWalker kann mit der Methode Document.createTreeWalker() erstellt werden.

Instanz-Eigenschaften

Diese Schnittstelle erbt keine Eigenschaften.

TreeWalker.root Schreibgeschützt

Gibt den Wurzelknoten Node zurück, wie beim Erstellen des TreeWalker angegeben.

TreeWalker.whatToShow Schreibgeschützt

Gibt ein unsigned long zurück, das eine Bitmaske aus Konstanten ist, die die Arten von Node beschreiben, die angezeigt werden müssen. Nicht übereinstimmende Knoten werden übersprungen, aber ihre Kinder können, falls relevant, einbezogen werden. Die möglichen Werte sind:

Konstante Numerischer Wert Beschreibung
NodeFilter.SHOW_ALL 4294967295 (das ist der maximale Wert von unsigned long) Zeigt alle Knoten an.
NodeFilter.SHOW_ATTRIBUTE Veraltet 2 Zeigt Attributknoten Attr an. Dies ist nur sinnvoll, wenn ein TreeWalker mit einem Attr-Knoten als Wurzel erstellt wird. In diesem Fall bedeutet es, dass der Attributknoten an erster Stelle der Iteration erscheint. Da Attribute nie Kinder anderer Knoten sind, erscheinen sie nicht beim Durchlaufen des Dokumentbaums.
NodeFilter.SHOW_CDATA_SECTION Veraltet 8 Zeigt CDATASection-Knoten an.
NodeFilter.SHOW_COMMENT 128 Zeigt Comment-Knoten an.
NodeFilter.SHOW_DOCUMENT 256 Zeigt Document-Knoten an.
NodeFilter.SHOW_DOCUMENT_FRAGMENT 1024 Zeigt DocumentFragment-Knoten an.
NodeFilter.SHOW_DOCUMENT_TYPE 512 Zeigt DocumentType-Knoten an.
NodeFilter.SHOW_ELEMENT 1 Zeigt Element-Knoten an.
NodeFilter.SHOW_ENTITY Veraltet 32 Veraltet, nicht mehr verwendbar.
NodeFilter.SHOW_ENTITY_REFERENCE Veraltet 16 Veraltet, nicht mehr verwendbar.
NodeFilter.SHOW_NOTATION Veraltet 2048 Veraltet, nicht mehr verwendbar.
NodeFilter.SHOW_PROCESSING_INSTRUCTION 64 Zeigt ProcessingInstruction-Knoten an.
NodeFilter.SHOW_TEXT 4 Zeigt Text-Knoten an.
TreeWalker.filter Schreibgeschützt

Gibt den NodeFilter zurück, der mit diesem TreeWalker verknüpft ist und verwendet wird, um die relevanten Knoten auszuwählen.

TreeWalker.currentNode

Ist der Node, auf den der TreeWalker derzeit zeigt.

Instanz-Methoden

Diese Schnittstelle erbt keine Methoden.

Hinweis: Im Kontext eines TreeWalker ist ein Knoten sichtbar, wenn er in der logischen Ansicht existiert, die durch die Argumente whatToShow und filter bestimmt wird. (Ob der Knoten auf dem Bildschirm sichtbar ist, ist irrelevant.)

TreeWalker.parentNode()

Verschiebt den aktuellen Node zum ersten sichtbaren Vorgängerknoten in der Dokumentreihenfolge und gibt den gefundenen Knoten zurück. Es verschiebt auch den aktuellen Knoten zu diesem. Wenn kein solcher Knoten existiert oder wenn er vor dem Wurzelknoten definiert beim Erstellen des Objekts ist, wird null zurückgegeben und der aktuelle Knoten wird nicht geändert.

TreeWalker.firstChild()

Verschiebt den aktuellen Node zum ersten sichtbaren Kind des aktuellen Knotens und gibt das gefundene Kind zurück. Es verschiebt auch den aktuellen Knoten zu diesem. Wenn kein solches Kind existiert, wird null zurückgegeben und der aktuelle Knoten wird nicht geändert. Beachten Sie, dass der von firstChild() zurückgegebene Knoten vom Wert von whatToShow abhängt, der bei der Instanziierung des TreeWalker-Objekts festgelegt wurde. Angenommen, der folgende HTML-Baum, und wenn whatToShow auf NodeFilter.SHOW_ALL gesetzt ist, gibt ein Aufruf von firstChild() einen Text-Knoten und nicht ein HTMLDivElement-Objekt zurück.

html
<!doctype html>
<html lang="en">
  <head>
    <title>Demo</title>
  </head>
  <body>
    <div id="container"></div>
  </body>
</html>
js
let walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL);
let node = walker.firstChild(); // nodeName: "#text"

Aber wenn wir:

js
let walker = document.createTreeWalker(
  document.body,
  NodeFilter.SHOW_ELEMENT,
);
let node = walker.firstChild(); // nodeName: "DIV"

Das Gleiche gilt für nextSibling(), previousSibling(), firstChild() und lastChild()

TreeWalker.lastChild()

Verschiebt den aktuellen Node zum letzten sichtbaren Kind des aktuellen Knotens und gibt das gefundene Kind zurück. Es verschiebt auch den aktuellen Knoten zu diesem. Wenn kein solches Kind existiert, wird null zurückgegeben und der aktuelle Knoten wird nicht geändert.

TreeWalker.previousSibling()

Verschiebt den aktuellen Node zu seinem vorherigen Geschwisterknoten, falls vorhanden, und gibt das gefundene Geschwister zurück. Wenn kein solcher Knoten existiert, wird null zurückgegeben und der aktuelle Knoten wird nicht geändert.

TreeWalker.nextSibling()

Verschiebt den aktuellen Node zu seinem nächsten Geschwisterknoten, falls vorhanden, und gibt das gefundene Geschwister zurück. Wenn kein solcher Knoten existiert, wird null zurückgegeben und der aktuelle Knoten wird nicht geändert.

TreeWalker.previousNode()

Verschiebt den aktuellen Node zum vorherigen sichtbaren Knoten in der Dokumentreihenfolge und gibt den gefundenen Knoten zurück. Es verschiebt auch den aktuellen Knoten zu diesem. Wenn kein solcher Knoten existiert oder wenn er vor dem Wurzelknoten definiert beim Erstellen des Objekts ist, wird null zurückgegeben und der aktuelle Knoten wird nicht geändert.

TreeWalker.nextNode()

Verschiebt den aktuellen Node zum nächsten sichtbaren Knoten in der Dokumentreihenfolge und gibt den gefundenen Knoten zurück. Es verschiebt auch den aktuellen Knoten zu diesem. Wenn kein solcher Knoten existiert, wird null zurückgegeben und der aktuelle Knoten wird nicht geändert.

Spezifikationen

Specification
DOM
# interface-treewalker

Browser-Kompatibilität

Siehe auch