Document: Methode createNodeIterator()
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 optionales
unsigned long
, das eine Bitmaske darstellt, die durch Kombinieren der Konstanten-Eigenschaften vonNodeFilter
erstellt wurde. Es ist eine bequeme Möglichkeit, nach bestimmten Arten von Knoten zu filtern. Es hat als Standardwert0xFFFFFFFF
, was die KonstanteSHOW_ALL
repräsentiert.Konstante Numerischer Wert Beschreibung NodeFilter.SHOW_ALL
4294967295
(das ist der Maximalwert vonunsigned long
)Zeigt alle Knoten. NodeFilter.SHOW_ATTRIBUTE
Veraltet2
Zeigt Attributknoten Attr
. Dies ist nur sinnvoll, wenn einTreeWalker
mit einemAttr
-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
Veraltet8
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 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.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 imwhatToShow
-Flag enthalten akzeptiert wird, 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. Siehe das 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 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);
}
Das Gleiche, aber es wird ein Objekt mit einer acceptNode()
-Methode verwendet:
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