JavaScript遍历DOM元素的常见方式示例
本文介绍JavaScript中遍历DOM元素的两种常见方式。首先指出IE9前后浏览器对空格文本节点处理的差异,建议使用firstElementChild等属性避免兼容性问题。接着通过nodeType判断节点类型,分别演示了使用firstChild/nextSibling和firstElementChild/nextElementSibling遍历元素节点的具体代码实现。
DOM遍历概述与兼容性差异
本文介绍了JavaScript中遍历DOM元素的几种常用方法,供读者参考学习。
在处理元素间的空白节点时,不同浏览器存在行为差异:IE9及更早版本不会将空格识别为文本节点,而其他浏览器则会返回文本节点。这种差异导致在使用firstChild和lastChild属性时,代码在不同环境下的表现可能不一致。
为了解决上述兼容性问题,DOM规范引入了以下新属性:
新增DOM属性介绍
childElementCount:用于获取子元素(排除文本节点和注释)的数量;
firstElementChild:相当于firstChild的元素版本;
lastElementChild:相当于lastChild的元素版本;
previousElementSibling和nextElementSibling分别对应previousSibling和nextSibling的元素版本。
节点类型判断基础
假设HTML结构如下,我们的目标是遍历出div标签内的所有元素节点:
通常,区分元素节点、属性节点和文本节点的通用方法是检查节点的nodeType属性。
常见的nodeType值包括:
元素节点:值为1,
属性节点:值为2,
文本节点:值为3,
注释节点:值为8, ……
遍历元素节点的方法一
<div id="list">
<p>hello</p>
<span>world</span>
<em>cookieParse()</em>
</div>
方法一:利用firstChild和lastChild进行元素遍历:
遍历元素节点的方法二
var list = document.getElementById('list');
var child = list.firstChild;
console.log(list.nextSibling)
while(child != list.lastChild){
if(child.nodeType == 1){
console.log( child );
}
child = child.nextSibling;
}
使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行结果:

方法二:使用firstElementChild和nextElementSibling
var list = document.getElementById('list');
var child = list.firstElementChild;
while(child){
console.log( child );
child = child.nextElementSibling;
}
使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行结果:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript操作DOM技巧总结》、《JavaScript页面元素操作技巧总结》、《JavaScript事件相关操作与技巧大全》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
AOS.js 动画不触发怎么办?排查 DOM 加载与移动端兼容问题
2026-11-05 17:02:26
sigma.js 怎么实现节点点击、拖拽与悬停提示交互
2026-11-05 15:03:27
Matter.js 与 PixiJS/Three.js 集成:分离物理计算与渲染
2026-11-05 13:43:48
主流JS弹幕库选型指南:Danmaku.js等库的功能与体积对比
2026-11-05 09:28:19
JavaScript点击事件监听与交互效果实例
2026-11-05 09:10:19
