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 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 Stammknoten, bei dem der Durchlauf des
NodeIteratorbeginnen soll. whatToShowOptional-
Ein optionaler
unsigned long, der eine Bitmaske darstellt, erstellt durch das Kombinieren der Konstanten-Eigenschaften vonNodeFilter. Es ist eine bequeme Möglichkeit, bestimmte Knotentypen zu filtern. Standardwert ist0xFFFFFFFF, das die KonstanteSHOW_ALLdarstellt.Konstante Zahlenwert Beschreibung NodeFilter.SHOW_ALL0xFFFFFFFFZeigt alle Knoten an. NodeFilter.SHOW_ATTRIBUTE0x2Zeigt Attr-Knoten an.NodeFilter.SHOW_CDATA_SECTION0x8Zeigt CDATASection-Knoten an.NodeFilter.SHOW_COMMENT0x80Zeigt Comment-Knoten an.NodeFilter.SHOW_DOCUMENT0x100Zeigt Document-Knoten an.NodeFilter.SHOW_DOCUMENT_FRAGMENT0x400Zeigt DocumentFragment-Knoten an.NodeFilter.SHOW_DOCUMENT_TYPE0x200Zeigt DocumentType-Knoten an.NodeFilter.SHOW_ELEMENT0x1Zeigt Element-Knoten an.NodeFilter.SHOW_ENTITYVeraltet0x20Veraltet, nicht mehr wirksam. NodeFilter.SHOW_ENTITY_REFERENCEVeraltet0x10Veraltet, nicht mehr wirksam. NodeFilter.SHOW_NOTATIONVeraltet0x800Veraltet, nicht mehr wirksam. NodeFilter.SHOW_PROCESSING_INSTRUCTION0x40Zeigt ProcessingInstruction-Knoten an.NodeFilter.SHOW_TEXT0x4Zeigt Text-Knoten an.Hinweis: Die Konstante
NodeFilter.SHOW_ATTRIBUTEist nur wirksam, wenn der Stamm ein Attributknoten ist. Da das übergeordnete Element einesAttr-Knotens immernullist, gebenTreeWalker.nextNode()undTreeWalker.previousNode()niemals einenAttr-Knoten zurück. UmAttr-Knoten zu durchlaufen, verwenden Sie stattdessenElement.attributes. filterOptional-
Eine Callback-Funktion oder ein Objekt mit einer
acceptNode()-Methode. Die Funktion oder Methode wird für jeden Knoten im Teilbaum, der am Stamm basiert und als in die Liste der durchlaufbaren Knoten aufgenommen akzeptiert wird, aufgerufen, um zu bestimmen, ob er aufgenommen werden soll oder nicht. Die Methode sollte eines derNodeFilter.FILTER_ACCEPT,NodeFilter.FILTER_REJECToderNodeFilter.FILTER_SKIPzurückgeben. Siehe das Beispiel.Für
createNodeIteratorsind die WerteNodeFilter.FILTER_REJECTundNodeFilter.FILTER_SKIPgleichwertig. 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, jedoch 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…