任何一个node节点都可以作为遍历的根(traversal root),然后遍历该节点本身以及后代元素,不能遍历祖先或者兄弟元素,方向可以反转

 
<div id=”div1”>
<p><b>Hello</b> world!</p>
<ul>
<li>List item 1</li>

<li>List item 2</li>

<li>List item 3</li>

</ul>

</div>
 
使用NodeIterator遍历:
var div = document.getElementById(“div1”);
var iterator = document.createNodeIterator(div, NodeFilter.SHOW_ELEMENT, null, false);
 
var node = iterator.nextNode();
while (node !== null) {
alert(node.tagName);               //output the tag name
node = iterator.nextNode();
}
 
使用TreeWalker,更为先进的方案:
var div = document.getElementById(“div1”);
var walker = document.createTreeWalker(div, NodeFilter.SHOW_ELEMENT, null, false);
 
walker.firstChild();                         //go to <p>
walker.nextSibling();                      //go to <ul>
 
var node = walker.fi rstChild();                        //go to fi rst <li>
while (node !== null) {
alert(node.tagName);
node = walker.nextSibling();
}
 
walker.currentNode = document.body;       //change where to start from

最新文章

  1. 【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现
  2. windows注册表学习笔记
  3. Java多线程基础知识(二)
  4. 编写并发程序 Inversion
  5. redis 详解
  6. jQuery - AJAX (keep for myself)
  7. websphere变成英文了
  8. python函数介绍
  9. aspx页面中获取当前浏览器url
  10. 规范 : angular 组合 jquery plugin
  11. Java开发岗面试知识点解析
  12. 关于Oracle数据库后台进程
  13. Thinkphp3.1 php 链接SqlServer
  14. 044 SimpleDateFormat的线程安全问题与解决方案
  15. github管理开发代码流程
  16. HIVE点滴:group by和distinct语句的执行顺序
  17. 系统的Drawable(一)
  18. Linux mint 亮度调节
  19. 如何用 Keynote 制作动画演示(转)
  20. Python练习题--持续更新

热门文章

  1. Spring-boot:5分钟整合Dubbo构建分布式服务
  2. Linux Bash Shell字符串截取
  3. ExtJS配置与入门项目创建
  4. “一切都是消息”--MSF(消息服务框架)之【请求-响应】模式
  5. 多个activity跳转保留内存使用intent传递数据问题_新手
  6. 访问 IIS 元数据库失败
  7. jdbc学习总结
  8. asp.net调用Lodop实现页面打印或局部打印,可进行打印设置或预览
  9. Opencv怎么读入,显示,保存图像-OpenCV步步精深
  10. idea web项目动态部署