Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

TreeWalker(树木漫步者)←_←

  昨天介绍了NodeIterator对象,既然扯到迭代器那就不得不同时介绍一下TreeWalker了。这个名字很有意思,我可以把它翻译为“树木漫步者”(好有魔兽风格)吗?其实它就是一只在DOM树上窜的猴子而已,它基本兼容NodeIterator,并提供了更多的操作方法。
  所谓兼容NodeIterator就意味着它的使用方法可以和NodeIterator一样创建 onload=function(){
  var o,monkey,html;
  html=document.documentElement,
  monkey=document.createTreeWalker(html,NodeFilter.SHOW_ALL,function(){
    return NodeFilter.FILTER_ACCEPT;
  },false);
  //注意这个遍历和NodeIterator有些不同
  do{
    console.log(monkey.currentNode);
  }while(monkey.nextNode());
};

  但是在遍历时候还是有一点点区别的。NodeIterator对象被创建后游标在BOF的位置,而TreeWalker被创建以后游标在第一个元素的位置。所以它不能直接像NodeIterator那样遍历。而且TreeWalker对象提供的更多的操作,比如上面例子中给你的currentNode属性就是用来获取这只猴子所在位置的(当前游标位置)。并且有下面这些方法

  这些方法名称都与普通的DOM对象的属性相同的,我就不用逐个说明了。只是DOM上的属性,到了这里变成了方法而已,调用相应的方法就可以让这只猴子移动到相应的节点位置上。
  其实吧,我目前做过的项目中没有任何对NodeIterator或TreeWorker的需求,只是因为它存在所以了解下,为了以后要用上时可以找到它而已。
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^