Document: Methode createNodeIterator()

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 optionales unsigned long, das eine Bitmaske darstellt, die durch Kombinieren der Konstanten-Eigenschaften von NodeFilter erstellt wurde. Es ist eine bequeme Möglichkeit, nach bestimmten Arten von Knoten zu filtern. Es hat als Standardwert 0xFFFFFFFF, was die Konstante SHOW_ALL repräsentiert.

Konstante Numerischer Wert Beschreibung
NodeFilter.SHOW_ALL 4294967295 (das ist der Maximalwert von unsigned long) Zeigt alle Knoten.
NodeFilter.SHOW_ATTRIBUTE Veraltet 2 Zeigt Attributknoten Attr. 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 oder Durchquerung erscheint. Da Attribute nie Kinder anderer Knoten sind, erscheinen sie nicht, wenn über den Dokumentbaum traversiert wird.
NodeFilter.SHOW_CDATA_SECTION Veraltet 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 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.
NodeFilter.SHOW_TEXT 4 Zeigt Text-Knoten.
filter Optional

Eine Callback-Funktion oder ein Objekt mit einer acceptNode()-Methode. Die Funktion oder Methode wird für jeden Knoten im Teilbaum, der an der Wurzel basiert, aufgerufen, der als im whatToShow-Flag enthalten akzeptiert wird, um zu bestimmen, ob er in die Liste der iterierbaren Knoten aufgenommen wird oder nicht. Die Methode sollte einen der Werte 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 äquivalent. Dieser Knoten wird nicht in die Liste der iterierbaren Knoten aufgenommen, aber seine Kinder werden weiterhin durchlaufen.

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 es wird ein Objekt mit einer acceptNode()-Methode verwendet:

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 Standard
# dom-document-createnodeiterator

Browser-Kompatibilität

BCD tables only load in the browser