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 Juli 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
NodeIteratorbeginnt. whatToShowOptional-
Ein optionaler
unsigned long, der eine Bitmaske darstellt, die durch Kombination der konstanten Eigenschaften vonNodeFiltererstellt wurde. Es ist eine bequeme Möglichkeit, nach bestimmten Knotentypen zu filtern. Standardmäßig wird der Wert0xFFFFFFFFverwendet, der die KonstanteSHOW_ALLrepräsentiert.Konstante Zahlenwert Beschreibung NodeFilter.SHOW_ALL4294967295(das ist der Maximalwert vonunsigned long)Zeigt alle Knoten an. NodeFilter.SHOW_ATTRIBUTE2Zeigt Attributknoten Attran. Dies ist nur sinnvoll, wenn einTreeWalkermit 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_SECTION8Zeigt CDATASection-Knoten an.NodeFilter.SHOW_COMMENT128Zeigt Comment-Knoten an.NodeFilter.SHOW_DOCUMENT256Zeigt Document-Knoten an.NodeFilter.SHOW_DOCUMENT_FRAGMENT1024Zeigt DocumentFragment-Knoten an.NodeFilter.SHOW_DOCUMENT_TYPE512Zeigt DocumentType-Knoten an.NodeFilter.SHOW_ELEMENT1Zeigt Element-Knoten an.NodeFilter.SHOW_ENTITYVeraltet32Veraltet, nicht mehr nutzbar. NodeFilter.SHOW_ENTITY_REFERENCEVeraltet16Veraltet, nicht mehr nutzbar. NodeFilter.SHOW_NOTATIONVeraltet2048Veraltet, nicht mehr nutzbar. NodeFilter.SHOW_PROCESSING_INSTRUCTION64Zeigt ProcessingInstruction-Knoten an.NodeFilter.SHOW_TEXT4Zeigt Text-Knoten an. filterOptional-
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_REJECToderNodeFilter.FILTER_SKIPzurückgeben. Details dazu finden Sie im Beispiel.Für
createNodeIteratorsind die WerteNodeFilter.FILTER_REJECTundNodeFilter.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> |
Browser-Kompatibilität
Loading…