DOM
SourceNodeIterator
and TreeWalker
objects can be used to filter and traverse node trees.
Each NodeIterator
and TreeWalker
object has an associated active flag to avoid recursive
invocations. It is initially unset.
Each NodeIterator
and TreeWalker
object also has an associated root (a node), a whatToShow (a bitmask), and a filter (a callback).
To filter a node node within
a NodeIterator
or TreeWalker
object traverser, run these steps:
In all current engines.
Firefox3.5+Safari3+Chrome1+ Opera9+Edge79+ Edge (Legacy)12+IE9+ Firefox for Android4+iOS Safari3+Chrome for Android18+Android WebView1+Samsung Internet1.0+Opera Mobile10.1+
[Exposed=Window]
interface NodeIterator
{ [SameObject] readonly attribute Node root; readonly attribute Node referenceNode; readonly attribute boolean pointerBeforeReferenceNode; readonly attribute unsigned long whatToShow; readonly attribute NodeFilter? filter; Node? nextNode(); Node? previousNode(); undefined detach();
};
NodeIterator
objects can be created using the createNodeIterator()
method on Document
objects.
Each NodeIterator
object has an associated iterator collection, which is a collection rooted at the NodeIterator
object’s root, whose
filter matches any node.
Each NodeIterator
object also has an associated reference (a node) and pointer before reference (a boolean).
As mentioned earlier, NodeIterator
objects have an associated active flag, root, whatToShow, and filter as well.
The NodeIterator
pre-removing steps given a nodeIterator and toBeRemovedNode, are as follows:
In all current engines.
Firefox3.5+Safari3+Chrome1+ Opera9+Edge79+ Edge (Legacy)12+IE9+ Firefox for Android4+iOS Safari3+Chrome for Android18+Android WebView1+Samsung Internet1.0+Opera Mobile10.1+
The root
getter steps are to return this’s root.
In all current engines.
Firefox3.5+Safari3+Chrome1+ OperaYesEdge79+ Edge (Legacy)17+IENone Firefox for Android4+iOS Safari3+Chrome for Android18+Android WebView1+Samsung Internet1.0+Opera MobileYes
The referenceNode
getter steps are to return this’s reference.
NodeIterator/pointerBeforeReferenceNode
In all current engines.
Firefox3.5+Safari3+Chrome1+ OperaYesEdge79+ Edge (Legacy)17+IENone Firefox for Android4+iOS Safari3+Chrome for Android18+Android WebView1+Samsung Internet1.0+Opera MobileYes