Document.createTreeWalker()

Die Methode Document.createTreeWalker() erzeugt ein neues TreeWalker Objekt und gibt dieses zurück.

Syntax

treeWalker = document.createTreeWalker(wurzel, anzeigeFilter, filter, entityReferenceExpansion);

Parameter

wurzel
Ist der Ursprungs- oder Wurzelknoten Node des TreeWalker-Durchlaufens. Normalerweise ist dies ein Element, das zum Dokument gehört.
anzeigeFilter Optional
Optionale unsigned longBitmaske, erstellt durch bitweise ODER-Verknüpfung der Konstanten von NodeFilter. Erlaubt eine bequeme Filterung auf bestimmte Knotentypen. Der Standardwert ist 0xFFFFFFFF, auch repräsentiert durch die SHOW_ALL-Konstante.
Konstante numerischer Wert Beschreibung
NodeFilter.SHOW_ALL -1 (Maximalwert von unsigned long) Zeigt alle Knoten.
NodeFilter.SHOW_ATTRIBUTE 2 Zeigt Attribut-Knoten Attr. Das ist nur sinnvoll, wenn der TreeWalker mit einem Attr-Knoten als Wurzel erzeugt wird. In diesem Fall erscheint der Attribut-Knoten an der ersten Position bei der Durchquerung. Da Attribute nie Kind-Knoten anderer Knoten sind, erscheinen sie nicht, wenn der Dokumentenbaum durchlaufen wird.
NodeFilter.SHOW_CDATA_SECTION 8 Zeigt CDATASection-Knoten.
NodeFilter.SHOW_COMMENT 128 Zeigt Comment-Knoten.
NodeFilter.SHOW_DOCUMENT 256 Zeigt Document-Knoten.
NodeFilter.SHOW_DOCUMENT_FRAGMENT 1024 Zeigt DocumentFragment-Knoten.
NodeFilter.SHOW_DOCUMENT_TYPE 512 Zeigt DocumentType-Knoten.
NodeFilter.SHOW_ELEMENT 1 Zeigt Element-Knoten.
NodeFilter.SHOW_ENTITY 32 Zeigt Entity-Knoten. Dies ist nur sinnvoll, wenn ein TreeWalker mit einem Entity-Knoten als Wurzel erzeugt wird. In diesem Fall erscheint der Entity-Knoten an der ersten Position bei der Durchquerung. Da Entity-Knoten nie Kind-Knoten anderer Knoten sind, erscheinen sie nicht, wenn der Dokumentenbaum durchlaufen wird.
NodeFilter.SHOW_ENTITY_REFERENCE 16 Shows EntityReference nodes.
NodeFilter.SHOW_NOTATION 2048 Zeigt Notation-Knoten. Dies ist nur sinnvoll, wenn ein TreeWalker mit einem Notation-Knoten als Wurzel erzeugt wird. In diesem Fall erscheint der Notation-Knoten an der ersten Position bei der Durchquerung. Da Entity-Knoten nie Kind-Knoten anderer Knoten sind, erscheinen sie nicht, wenn der Dokumentenbaum durchlaufen wird.
NodeFilter.SHOW_PROCESSING_INSTRUCTION 64 Zeigt ProcessingInstruction-Knoten.
NodeFilter.SHOW_TEXT 4 Zeigt Text-Knoten.
filter Optional
Ein optionaler NodeFilter. Muss ein ein Objekt mit einer Methode namens acceptNode sein, die vom TreeWalker aufgerufen wird. Diese Methode entscheidet, ob ein übergebener Knoten, der schon von anzeigeFilter durchgelassen wurde, ausgegeben wird oder nicht.
entityReferenceExpansion Optional
Optionaler Boolean-Schalter. Entscheidet, ob der Teilbaum unter einer EntityReference ausgelassen werden soll, wenn das Element ausgelassen wird.

Beispiel

Das folgende Beispiel läuft über alle Knoten im body, filtert die Menge auf Elementknoten und gibt im filter jeden Knoten als durchlässig an (die Filterung auf die Elementknoten hätte auch in der acceptNode()-Methode erfolgen können). Mithilfe des treeWalker werden alle durchgelassenen Knoten in ein Array gesammelt.

var treeWalker = document.createTreeWalker(
  document.body,
  NodeFilter.SHOW_ELEMENT,
  { acceptNode: function(node) { return NodeFilter.FILTER_ACCEPT; } },
  false
);

var nodeList = [];

while(treeWalker.nextNode()) nodeList.push(treeWalker.currentNode);

Spezfikationen

Spezfikation Status Bemerkung
DOM
Die Definition von 'Document.createTreeWalker' in dieser Spezifikation.
Lebender Standard expandEntityReferences-Parameter wurde entfernt. whatToShow- und filter-Parameter wurden als optional markiert.
Document Object Model (DOM) Level 2 Traversal and Range Specification
Die Definition von 'Document.createTreeWalker' in dieser Spezifikation.
Empfehlung Initiale Definition

Browser-Kompatibilität

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
grundsätzliche Unterstützung 1.0 2.0 (1.8.1) 9.0 9.0 3.0
whatToShow und filter optional 1.0 12 (12) Nicht unterstützt (Ja) 3.0
expandEntityReferences 1.0 2.0 (1.8.1)
In 12 (12) entfernt.
9.0 9.0 3.0
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
grundsätzliche Unterstützung (Ja) 1.0 (1.8.1) (Ja) 9.0 3.0
whatToShow und filter optional (Ja) 12 (12) Nicht unterstützt (Ja) 3.0
expandEntityReferences (Ja) 2.0 (1.8.1)
In 12 (12) entfernt
(Ja) 9.0 3.0

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

 Mitwirkende an dieser Seite: bbarnickel
 Zuletzt aktualisiert von: bbarnickel,