JavaScript遍历DOM元素的常见方式示例


Posted in Javascript onFebruary 16, 2019

本文实例讲述了JavaScript遍历DOM元素的常见方式。分享给大家供大家参考,具体如下:

对于元素之间的空格,IE9以及之前的版本不会返回文本节点,,其他的浏览器会返回文本节点,所以我们在使用firstChild,lastChild时会导致行为不一致。

DOM中为元素新增了下面几个属性:

childElementCount:返回子元素(不包括文本节点和注释)的数量;
firstElementChild:firstChild的元素版;
lastElementChild:lastChild的元素版;
previousElementSiblingnextElementSibling对应着previousSiblingnextSibling的元素版

假设html如下,我们想遍历出div中的所有元素节点:

一般来说,区别元素节点,属性节点,文本节点的通用方式是判断该节点的nodeType。

常见的几种nodeType:

元素节点:1,

属性节点:2,

文本节点:3,

注释节点:8,
……

<div id="list">
  <p>hello</p>
  <span>world</span>
  <em>cookieParse()</em>
</div>

方式1:firstChildlastChild进行元素遍历:

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.3water.com/code/HtmlJsRun测试上述代码,可得如下运行结果:

JavaScript遍历DOM元素的常见方式示例

方式2:使用firstElementChildnextElementSibling

var list = document.getElementById('list');
var child = list.firstElementChild;
while(child){
  console.log( child );
  child = child.nextElementSibling;
}

使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,可得如下运行结果:

JavaScript遍历DOM元素的常见方式示例

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JQuery 文本框使用小结
May 22 Javascript
javascript多行字符串的简单实现方式
May 04 Javascript
jQuery无刷新切换主题皮肤实例讲解
Oct 21 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
Jan 26 Javascript
Vue.js组件tab实现选项卡切换
Mar 23 Javascript
Vue自定义图片懒加载指令v-lazyload详解
Dec 31 Javascript
JavaScript实现form表单的多文件上传
Mar 27 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
Aug 24 Javascript
VUE简单的定时器实时刷新的实现方法
Jan 20 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
Apr 28 Javascript
js new Date()实例测试
Oct 31 Javascript
Vue基于iview table展示图片实现点击放大
Aug 05 Javascript
原生JS实现逼真的图片3D旋转效果详解
Feb 16 #Javascript
JS实现简单的抽奖转盘效果示例
Feb 16 #Javascript
mocha的时序规则讲解
Feb 16 #Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 #jQuery
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 #Javascript
详解Element 指令clickoutside源码分析
Feb 15 #Javascript
Node.js原生api搭建web服务器的方法步骤
Feb 15 #Javascript
You might like
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
Smarty中的注释和截断功能介绍
2015/04/09 PHP
php语法检查的方法总结
2019/01/21 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
jQuery 联动日历实现代码
2012/05/31 Javascript
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
vue中appear的用法
2017/08/17 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
Python自动调用IE打开某个网站的方法
2015/06/03 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
python+mysql实现教务管理系统
2019/02/20 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
什么是GWT的Entry Point
2013/08/16 面试题
财产公证书
2014/04/10 职场文书
中学生英语演讲稿
2014/04/26 职场文书
校园元旦活动总结
2014/07/09 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
2014年仓库工作总结
2014/11/20 职场文书
优秀大学生自荐信
2015/03/26 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript