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 Traversierung des
NodeIterator
beginnt. whatToShow
Optional-
Ein optionales
unsigned long
, das eine Bitmaske darstellt, die durch Kombinieren der konstanten Eigenschaften vonNodeFilter
erstellt wird. Es ist eine bequeme Möglichkeit, bestimmte Knotentypen zu filtern. Standardmäßig entspricht es0xFFFFFFFF
, was die KonstanteSHOW_ALL
darstellt.Konstante Numerischer Wert Beschreibung NodeFilter.SHOW_ALL
4294967295
(das ist der Maximalwert vonunsigned long
)Zeigt alle Knoten. NodeFilter.SHOW_ATTRIBUTE
2
Zeigt Attributknoten Attr
. Dies ist nur dann sinnvoll, wenn einTreeWalker
mit einemAttr
-Knoten als Wurzel erstellt wird. In diesem Fall bedeutet es, dass der Attributknoten an erster Stelle der Iteration erscheint. Da Attribute niemals Kinder anderer Knoten sind, erscheinen sie nicht bei der Traversierung des Dokumentenbaumes.NodeFilter.SHOW_CDATA_SECTION
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
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.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 Unterbaum, der bei der Wurzel basiert und durch die whatToShow-Flagge als enthalten akzeptiert wird, aufgerufen, um zu bestimmen, ob er in die Liste der durchlaufbaren Knoten aufgenommen werden soll. Die Methode sollte einen der WerteNodeFilter.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 durchlaufbaren Knoten aufgenommen, aber seine Kinder werden weiterhin durchlaufen.
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);
}
Dasselbe, 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 |