Document: createNodeIterator() method
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.
The Document.createNodeIterator() method returns a new NodeIterator object.
Syntax
createNodeIterator(root)
createNodeIterator(root, whatToShow)
createNodeIterator(root, whatToShow, filter)
Parameters
root-
The root node at which to begin the
NodeIterator's traversal. whatToShowOptional-
An optional
unsigned longrepresenting a bitmask created by combining the constant properties ofNodeFilter. It is a convenient way of filtering for certain types of node. It defaults to0xFFFFFFFFrepresenting theSHOW_ALLconstant.Constant Numerical value Description NodeFilter.SHOW_ALL4294967295(that is the max value ofunsigned long)Shows all nodes. NodeFilter.SHOW_ATTRIBUTE2Shows attribute Attrnodes. This is meaningful only when creating aTreeWalkerwith anAttrnode as its root. In this case, it means that the attribute node will appear in the first position of the iteration or traversal. Since attributes are never children of other nodes, they do not appear when traversing over the document tree.NodeFilter.SHOW_CDATA_SECTION8Shows CDATASectionnodes.NodeFilter.SHOW_COMMENT128Shows Commentnodes.NodeFilter.SHOW_DOCUMENT256Shows Documentnodes.NodeFilter.SHOW_DOCUMENT_FRAGMENT1024Shows DocumentFragmentnodes.NodeFilter.SHOW_DOCUMENT_TYPE512Shows DocumentTypenodes.NodeFilter.SHOW_ELEMENT1Shows Elementnodes.NodeFilter.SHOW_ENTITYDeprecated32Legacy, no more usable. NodeFilter.SHOW_ENTITY_REFERENCEDeprecated16Legacy, no more usable. NodeFilter.SHOW_NOTATIONDeprecated2048Legacy, no more usable. NodeFilter.SHOW_PROCESSING_INSTRUCTION64Shows ProcessingInstructionnodes.NodeFilter.SHOW_TEXT4Shows Textnodes. filterOptional-
A callback function or an object with an
acceptNode()method. The function or method will be called for each node in the subtree based at root which is accepted as included by the whatToShow flag to determine whether or not to include it in the list of iterable nodes. The method should return one ofNodeFilter.FILTER_ACCEPT,NodeFilter.FILTER_REJECT, orNodeFilter.FILTER_SKIP. See the Example.For
createNodeIterator, the valuesNodeFilter.FILTER_REJECTandNodeFilter.FILTER_SKIPare equivalent. This node will not be included in the list of iterable nodes, but its children will continue to be iterated over.
Return value
A new NodeIterator object.
Examples
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);
}
The same, but using an object with an acceptNode() method:
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);
}
Specifications
| Specification |
|---|
| DOM> # dom-document-createnodeiterator> |
Browser compatibility
Loading…