| title | Document: createNodeIterator() method |
|---|---|
| short-title | createNodeIterator() |
| slug | Web/API/Document/createNodeIterator |
| page-type | web-api-instance-method |
| browser-compat | api.Document.createNodeIterator |
{{APIRef("DOM")}}
The Document.createNodeIterator() method returns a new NodeIterator object.
createNodeIterator(root)
createNodeIterator(root, whatToShow)
createNodeIterator(root, whatToShow, filter)
-
root- : The root node at which to begin the {{ domxref("NodeIterator") }}'s traversal.
-
whatToShow{{optional_inline}}-
: 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_ALL0xFFFFFFFFShows all nodes. NodeFilter.SHOW_ATTRIBUTE0x2Shows {{domxref("Attr")}} nodes. NodeFilter.SHOW_CDATA_SECTION0x8Shows {{domxref("CDATASection")}} nodes. NodeFilter.SHOW_COMMENT0x80Shows {{domxref("Comment")}} nodes. NodeFilter.SHOW_DOCUMENT0x100Shows {{domxref("Document")}} nodes. NodeFilter.SHOW_DOCUMENT_FRAGMENT0x400Shows {{domxref("DocumentFragment")}} nodes. NodeFilter.SHOW_DOCUMENT_TYPE0x200Shows {{domxref("DocumentType")}} nodes. NodeFilter.SHOW_ELEMENT0x1Shows {{domxref("Element")}} nodes. NodeFilter.SHOW_ENTITY{{deprecated_inline}}0x20Legacy, no longer effective. NodeFilter.SHOW_ENTITY_REFERENCE{{deprecated_inline}}0x10Legacy, no longer effective. NodeFilter.SHOW_NOTATION{{deprecated_inline}}0x800Legacy, no longer effective. NodeFilter.SHOW_PROCESSING_INSTRUCTION0x40Shows {{domxref("ProcessingInstruction")}} nodes. NodeFilter.SHOW_TEXT0x4Shows {{domxref("Text")}} nodes. [!NOTE] The
NodeFilter.SHOW_ATTRIBUTEconstant is only effective when the root is an attribute node. Since the parent of anyAttrnode is alwaysnull, {{DOMXref("TreeWalker.nextNode()")}} and {{DOMXref("TreeWalker.previousNode()")}} will never return anAttrnode. To traverseAttrnodes, use {{DOMXref("Element.attributes")}} instead.
-
-
filter{{optional_inline}}-
: 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.
-
A new NodeIterator object.
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}}
{{Compat}}