MDN wants to learn about developers like you:

Document.createNodeIterator Redirect 1

« DOM Reference


Returns a new NodeIterator object.


var nodeIterator = document.createNodeIterator(root, whatToShow, filter);


The root node at which to begin the NodeIterator's traversal.
whatToShow Optional
Bitwise OR'd list of Filter specification constants from the NodeFilter DOM interface, indicating which nodes to iterate over.
filter Optional
An object implementing the NodeFilter interface; its acceptNode() 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 (a simple callback function may also be used instead). The method should return one of NodeFilter.FILTER_ACCEPT, NodeFilter.FILTER_REJECT, or NodeFilter.FILTER_SKIP. See the Example.
Note: Prior to Gecko 12.0 (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9), this method accepted an optional fourth parameter (entityReferenceExpansion) that is not part of the DOM4 specification, and has therefore been removed. This parameter indicated whether or not the children of entity reference nodes were visible to the iterator. Since such nodes were never created in browsers, this paramater had no effect.


var nodeIterator = document.createNodeIterator(
    function(node) {
        return node.nodeName.toLowerCase() === 'p' ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
var pars = [];
var currentNode;

while (currentNode = nodeIterator.nextNode()) {

Browser Compatibility

Supported in FF 3.5+, Chrome 1+, Opera 9+, Safari 3+, IE9+

See Also


DOM Level 2 Traversal: NodeIterator

Document Tags and Contributors

 Last updated by: Sheppy,