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去除空格的几种方法
Oct 03 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
May 08 Javascript
JS通过相同的name进行表格求和代码
Aug 18 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 Javascript
Vue数据驱动模拟实现2
Jan 11 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
Feb 14 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 Javascript
AngularJS实现select的ng-options功能示例
Jul 12 Javascript
vue的全局变量和全局拦截请求器的示例代码
Sep 13 Javascript
JS实现字体背景跑马灯
Jan 06 Javascript
vue中的.$mount('#app')手动挂载操作
Sep 02 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
ASP知识讲座四
2006/10/09 PHP
php中利用post传递字符串重定向的实现代码
2011/04/21 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
php查看当前Session的ID实例
2015/03/16 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
jQuery select控制插件
2009/08/17 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
JSON相关知识汇总
2015/07/03 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
python绘制漏斗图步骤详解
2019/03/04 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
介绍一下gcc特性
2015/10/31 面试题
用Python写一个for循环的例子
2016/07/19 面试题
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
汽车维修求职信
2014/06/15 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
信访工作汇报材料
2014/10/27 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android