使用: 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

 

评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!