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 相关文章推荐
解决javascript:window.close()在chrome,Firefox下失效的问题
May 07 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
Jun 18 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
Sep 01 Javascript
jquery动态分页效果堪比时光网
Sep 25 Javascript
原生 JS Ajax,GET和POST 请求实例代码
Jun 08 Javascript
早该知道的7个JavaScript技巧
Jun 21 Javascript
总结十个Angular.js由浅入深的面试问题
Aug 26 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
Dec 08 Javascript
Vue 中mixin 的用法详解
Apr 23 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
Jul 27 Javascript
Angular ElementRef简介及其使用
Oct 01 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
原生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
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
JavaScript中的立即执行函数表达式介绍
2015/03/15 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
Django返回json数据用法示例
2016/09/18 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
给我一面国旗 python帮你实现
2019/09/30 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
opencv 阈值分割的具体使用
2020/07/08 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
日语专业推荐信
2013/11/12 职场文书
公司董事长职责
2013/12/12 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书