Dokumentation: 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
createNodeIterator(root)
createNodeIterator(root, whatToShow)
createNodeIterator(root, whatToShow, filter)
Parameter
root
-
Der Wurzelknoten, bei dem die Traversierung des
NodeIterator
beginnt. whatToShow
Optional-
Ein optionaler
unsigned long
, der eine Bitmaske darstellt, die durch Kombination der konstanten Eigenschaften vonNodeFilter
erstellt wurde. Es ist eine bequeme Möglichkeit, nach bestimmten Knotentypen zu filtern. Standardmäßig wird der Wert0xFFFFFFFF
verwendet, der die KonstanteSHOW_ALL
repräsentiert.Konstante Zahlenwert Beschreibung NodeFilter.SHOW_ALL
4294967295
(das ist der Maximalwert vonunsigned long
)Zeigt alle Knoten an. NodeFilter.SHOW_ATTRIBUTE
2
Zeigt Attributknoten Attr
an. Dies ist nur sinnvoll, wenn einTreeWalker
mit einemAttr
-Knoten als Wurzel erstellt wird. In diesem Fall bedeutet es, dass der Attributknoten an der ersten Position der Iteration oder Traversierung erscheint. Da Attribute niemals Kinder anderer Knoten sind, erscheinen sie nicht bei der Traversierung des Dokumentbaumes.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
Veraltet32
Veraltet, nicht mehr nutzbar. NodeFilter.SHOW_ENTITY_REFERENCE
Veraltet16
Veraltet, nicht mehr nutzbar. NodeFilter.SHOW_NOTATION
Veraltet2048
Veraltet, nicht mehr nutzbar. 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 die Methode wird für jeden Knoten im Teilbaum, der am Wurzelknoten beginnt und als in derwhatToShow
-Markierung akzeptiert definiert ist, aufgerufen, um zu bestimmen, ob er in die Liste der iterierbaren Knoten aufgenommen wird oder nicht. Die Methode sollte einen der WerteNodeFilter.FILTER_ACCEPT
,NodeFilter.FILTER_REJECT
oderNodeFilter.FILTER_SKIP
zurückgeben. Details dazu finden Sie im Beispiel.Für
createNodeIterator
sind die WerteNodeFilter.FILTER_REJECT
undNodeFilter.FILTER_SKIP
äquivalent. Dieser Knoten wird nicht in die Liste der iterierbaren Knoten aufgenommen, aber seine Kinder werden weiterhin iteriert.
Rückgabewert
Ein neues NodeIterator
-Objekt.
Beispiele
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 unter Verwendung eines Objekts mit einer acceptNode()
-Methode:
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 |