Walking with TreeWalker

TreeWalker allows more traversal options than NodeIterator.


RESETRUNFULL
<!DOCTYPE html><html><body>
   <p>A</p>
   <span>Z</span>
   <p>B<b>1</b></p>
   <!-- hi -->
   <p>C</p>
   <script>
   ni = document.createTreeWalker(
             document.body,
             NodeFilter.SHOW_ELEMENT|
             NodeFilter.SHOW_COMMENT,
             function(node){
                return node.nodeName=='SPAN'?
            NodeFilter.FILTER_REJECT:
                           NodeFilter.FILTER_ACCEPT;
           });
   alert(ni.lastChild().textContent);  // (<script> text)
   alert(ni.previousSibling().textContent);  // C
   alert(ni.previousNode().textContent);  // hi
   alert(ni.parentNode().textContent);  // (<body> text)
   </script></body></html>