使用: document.createNodeIterator(); 通过传入一个根节点, 返回这个根节点的子节点遍历器, 然后通过其方法: nextNode() 和 previousNode() 遍历其子节点;
var nodeIterator = document.createNodeIterator( document.body, NodeFilter.SHOW_ELEMENT );
其中, 第二个参数表示生成的子节点遍历器的类型, 因为节点有七种类型, 除开几个不能作为子节点的节点, 这个参数可以是:
1. 所有节点: NodeFilter.SHOW_ALL
2. 元素节点: NodeFilter.SHOW_ELEMENT
3. 文本节点: NodeFilter.SHOW_TEXT
4. 注释节点: NodeFilter.SHOW_COMMENT
下面是具体的遍历写法:
var nodeIterator = document.createNodeIterator(document.body); var pars = []; var currentNode; while (currentNode = nodeIterator.nextNode()) { pars.push(currentNode); }
var nodeIterator = document.createNodeIterator( document.body, NodeFilter.SHOW_ELEMENT ); var currentNode = nodeIterator.nextNode(); var previousNode = nodeIterator.previousNode(); currentNode === previousNode // true