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 工具库 Cloudgamer JavaScript Library v0.1 发布
Oct 29 Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
May 07 Javascript
JQuery 选择器、过滤器介绍
Feb 14 Javascript
JS实现鼠标单击与双击事件共存
Mar 08 Javascript
js判断登录与否并确定跳转页面的方法
Jan 30 Javascript
JavaScript 事件入门知识
Apr 13 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
May 04 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
webpack组织模块打包Library的原理及实现
Mar 10 Javascript
使用FileReader API创建Vue文件阅读器组件
Apr 03 Javascript
javascript实现自由编辑图片代码详解
Jun 21 Javascript
javascript sort()对数组中的元素进行排序详解
Oct 13 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
php设计模式之单例模式代码
2016/06/11 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
跟老齐学Python之网站的结构
2014/10/24 Python
进一步探究Python中的正则表达式
2015/04/28 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
Python中static相关知识小结
2018/01/02 Python
python安装教程
2018/02/28 Python
python最长回文串算法
2018/06/04 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
Python版名片管理系统
2018/11/30 Python
详解python解压压缩包的五种方法
2019/07/05 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
数控个人求职信范文
2014/02/03 职场文书
奶茶店创业计划书
2014/08/14 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书