Dokument: createNodeIterator() Methode

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.

Die Document.createNodeIterator() Methode gibt ein neues NodeIterator Objekt zurück.

Syntax

js
createNodeIterator(root)
createNodeIterator(root, whatToShow)
createNodeIterator(root, whatToShow, filter)

Parameter

root

Der Wurzelknoten, bei dem die Durchquerung des NodeIterator beginnt.

whatToShow Optional

Ein optionaler unsigned long, der eine Bitmaske darstellt, die durch die Kombination der konstanten Eigenschaften von NodeFilter erstellt wird. Es ist ein praktischer Weg, um nach bestimmten Knotentypen zu filtern. Standardmäßig auf 0xFFFFFFFF eingestellt, was die Konstante SHOW_ALL darstellt.

Konstante Numerischer Wert Beschreibung
NodeFilter.SHOW_ALL 4294967295 (was der Maximalwert von unsigned long ist) Zeigt alle Knoten an.
NodeFilter.SHOW_ATTRIBUTE 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 in der ersten Position der Iteration oder Durchquerung erscheint. Da Attribute niemals Kinder anderer Knoten sind, erscheinen sie nicht, wenn man über den Dokumentbaum traversiert.
NodeFilter.SHOW_CDATA_SECTION 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.
filter Optional

Eine Callback-Funktion oder ein Objekt mit einer acceptNode() Methode. Die Funktion oder Methode wird für jeden Knoten im Unterbaum aufgerufen, der am root basiert, und von der whatToShow-Flagge als included akzeptiert wird, um festzustellen, ob er in die Liste der iterierbaren Knoten aufgenommen wird oder nicht. Die Methode sollte einen von NodeFilter.FILTER_ACCEPT, NodeFilter.FILTER_REJECT oder NodeFilter.FILTER_SKIP zurückgeben. Siehe das Beispiel.

Für createNodeIterator sind die Werte NodeFilter.FILTER_REJECT und NodeFilter.FILTER_SKIP gleichwertig. Dieser Knoten wird nicht in die Liste der iterierbaren Knoten aufgenommen, aber seine Kinder werden weiterhin durchquert.

Rückgabewert

Ein neues NodeIterator Objekt.

Beispiele

js
const nodeIterator = document.createNodeIterator(
  document.body,
  NodeFilter.SHOW_ELEMENT,
  (node) =>
    node.nodeName.toLowerCase() === "p"
      ? NodeFilter.FILTER_ACCEPT
      : NodeFilter.FILTER_REJECT,
);
const pars = [];
let currentNode;

while ((currentNode = nodeIterator.nextNode())) {
  pars.push(currentNode);
}

Das gleiche, aber mit einem Objekt mit einer acceptNode() Methode:

js
const nodeIterator = document.createNodeIterator(
  document.body,
  NodeFilter.SHOW_ELEMENT,
  {
    acceptNode(node) {
      return node.nodeName.toLowerCase() === "p"
        ? NodeFilter.FILTER_ACCEPT
        : NodeFilter.FILTER_REJECT;
    },
  },
);
const pars = [];
let currentNode;

while ((currentNode = nodeIterator.nextNode())) {
  pars.push(currentNode);
}

Spezifikationen

Specification
DOM
# dom-document-createnodeiterator

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
createNodeIterator

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support