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
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 vonNodeFilter
erstellt wird. Es ist ein praktischer Weg, um nach bestimmten Knotentypen zu filtern. Standardmäßig auf0xFFFFFFFF
eingestellt, was die KonstanteSHOW_ALL
darstellt.Konstante Numerischer Wert Beschreibung NodeFilter.SHOW_ALL
4294967295
(was der Maximalwert vonunsigned long
ist)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 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
Veraltet32
Veraltet, nicht mehr verwendbar. NodeFilter.SHOW_ENTITY_REFERENCE
Veraltet16
Veraltet, nicht mehr verwendbar. NodeFilter.SHOW_NOTATION
Veraltet2048
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 amroot
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 vonNodeFilter.FILTER_ACCEPT
,NodeFilter.FILTER_REJECT
oderNodeFilter.FILTER_SKIP
zurückgeben. Siehe das Beispiel.Für
createNodeIterator
sind die WerteNodeFilter.FILTER_REJECT
undNodeFilter.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
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:
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 GitHubdesktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
createNodeIterator |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support