博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
节点遍历 element traversal
阅读量:4981 次
发布时间:2019-06-12

本文共 937 字,大约阅读时间需要 3 分钟。

任何一个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

转载于:https://www.cnblogs.com/chuangweili/p/5166233.html

你可能感兴趣的文章
(转)Oracle、SQL Server下MD5+Base64密码加密实现
查看>>
Tomcat7配置数据源
查看>>
linux的chmod与chown命令详解
查看>>
SQL Server的复合索引适当用法
查看>>
[转]俞敏洪:我和马云就差了8个字... [来自: news.mbalib.com]
查看>>
intersection &union&zip
查看>>
Spark算子
查看>>
纯JS的ajax实例
查看>>
网站建设常识
查看>>
hashlib加密操作模块
查看>>
C#里的运算符和表达式
查看>>
解决挂载(mount:wrong fs type,bad option,bad superblock on )错误
查看>>
FastReport.Net使用:[20]条码控件使用
查看>>
表空间操作
查看>>
发布功能完成
查看>>
LeetCode: Reverse Nodes in k-Group
查看>>
06_zookeeper_原生API使用2
查看>>
javascript --- 继承初探七日谈 (一)
查看>>
排序算法一:插入排序(Insertion sort)
查看>>
线段树做题总结
查看>>