1.NodeIterator的使用
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript">window.onload = function() {function aFuntion() {var isSupportTraversals = document.implementation.hasFeature("Traversal", "2.0");alert(isSupportTraversals);//每个节点过滤器只有一个方法acceptNode//或者一个类似于acceptNode()的函数var filter = {acceptNode : function(node) {//alert(node.tagName);return node.tagName.toLowerCase() == "p" ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;}};var nodeIterator = document.createNodeIterator(document.getElementsByTagName("div").item(0),NodeFilter.SHOW_ELEMENT, filter, false);//NodeIterator的两个主要方法//nextNode()和previousNext(),在刚刚创建的NodeIterator对象中,有一个内部指针指向根节点,因此第一次调用nextNode()返回根节点var alertMessage = "";var node="";while (node=nodeIterator.nextNode()) {alertMessage += node.tagName;alertMessage += "\n";};alert(alertMessage);};document.getElementsByTagName("input").item(0).addEventListener("click",aFuntion,false);};</script></head><body>DOM2级遍历与范围:IteratorNode和TreeWalker这两个类型能够基于给定的起点DOM结构执行深度优先(depth-first)的遍历。<br><br><input type="button" value="点击触发遍历"><div id="div1"><p><b>Hello</b>World</p><ul><li>List item1</li><li>List item2</li><li>List item3</li></ul></div></body></html><!DOCTYPE html PUBLIC "-//W