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