--- title: Document.createTreeWalker() slug: Web/API/Document/createTreeWalker tags: - API - DOM - DOM-Referenz - Document - Dokument - Méthode translation_of: Web/API/Document/createTreeWalker ---
{{ApiRef("Document")}}

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

Syntax

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

Parameter

wurzel
Ist der Ursprungs- oder Wurzelknoten {{domxref("Node")}} des {{domxref("TreeWalker")}}-Durchlaufens. Normalerweise ist dies ein Element, das zum Dokument gehört.
anzeigeFilter {{optional_inline}}
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 {{deprecated_inline}} 2 Zeigt Attribut-Knoten {{domxref("Attr")}}. Das ist nur sinnvoll, wenn der {{domxref("TreeWalker")}} mit einem {{domxref("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 {{deprecated_inline}} 8 Zeigt {{domxref("CDATASection")}}-Knoten.
NodeFilter.SHOW_COMMENT 128 Zeigt {{domxref("Comment")}}-Knoten.
NodeFilter.SHOW_DOCUMENT 256 Zeigt {{domxref("Document")}}-Knoten.
NodeFilter.SHOW_DOCUMENT_FRAGMENT 1024 Zeigt {{domxref("DocumentFragment")}}-Knoten.
NodeFilter.SHOW_DOCUMENT_TYPE 512 Zeigt {{domxref("DocumentType")}}-Knoten.
NodeFilter.SHOW_ELEMENT 1 Zeigt {{domxref("Element")}}-Knoten.
NodeFilter.SHOW_ENTITY {{deprecated_inline}} 32 Zeigt {{domxref("Entity")}}-Knoten. Dies ist nur sinnvoll, wenn ein {{domxref("TreeWalker")}} mit einem {{domxref("Entity")}}-Knoten als Wurzel erzeugt wird. In diesem Fall erscheint der {{domxref("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 {{deprecated_inline}} 16 Shows {{domxref("EntityReference")}} nodes.
NodeFilter.SHOW_NOTATION {{deprecated_inline}} 2048 Zeigt {{domxref("Notation")}}-Knoten. Dies ist nur sinnvoll, wenn ein {{domxref("TreeWalker")}} mit einem {{domxref("Notation")}}-Knoten als Wurzel erzeugt wird. In diesem Fall erscheint der {{domxref("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 {{domxref("ProcessingInstruction")}}-Knoten.
NodeFilter.SHOW_TEXT 4 Zeigt {{domxref("Text")}}-Knoten.
filter {{optional_inline}}
Ein optionaler {{domxref("NodeFilter")}}. Muss ein ein Objekt mit einer Methode namens acceptNode sein, die vom {{domxref("TreeWalker")}} aufgerufen wird. Diese Methode entscheidet, ob ein übergebener Knoten, der schon von anzeigeFilter durchgelassen wurde, ausgegeben wird oder nicht.
entityReferenceExpansion {{optional_inline}} {{obsolete_inline}}
Optionaler {{domxref("Boolean")}}-Schalter. Entscheidet, ob der Teilbaum unter einer {{domxref("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
{{SpecName('DOM WHATWG', '#dom-document-createtreewalker', 'Document.createTreeWalker')}} {{Spec2('DOM WHATWG')}} expandEntityReferences-Parameter wurde entfernt. whatToShow- und filter-Parameter wurden als optional markiert.
{{SpecName('DOM2 Traversal_Range', 'traversal.html#NodeIteratorFactory-createTreeWalker', 'Document.createTreeWalker')}} {{Spec2('DOM2 Traversal_Range')}} Initiale Definition

Browser-Kompatibilität

{{CompatibilityTable}}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
grundsätzliche Unterstützung 1.0 {{CompatGeckoDesktop("1.8.1")}} 9.0 9.0 3.0
whatToShow und filter optional 1.0 {{CompatGeckoDesktop("12")}} {{CompatNo}} {{CompatVersionUnknown}} 3.0
expandEntityReferences 1.0 {{CompatGeckoDesktop("1.8.1")}}
In {{CompatGeckoDesktop("12")}} entfernt.
9.0 9.0 3.0
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
grundsätzliche Unterstützung {{CompatVersionUnknown}} {{CompatGeckoMobile("1.8.1")}} {{CompatVersionUnknown}} 9.0 3.0
whatToShow und filter optional {{CompatVersionUnknown}} {{CompatGeckoDesktop("12")}} {{CompatNo}} {{CompatVersionUnknown}} 3.0
expandEntityReferences {{CompatVersionUnknown}} {{CompatGeckoDesktop("1.8.1")}}
In {{CompatGeckoDesktop("12")}} entfernt
{{CompatVersionUnknown}} 9.0 3.0

Siehe auch