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实现一些导航条切换,显示隐藏的实例代码
Jun 08 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
Mar 12 Javascript
Javascript进制转换实例分析
May 14 Javascript
JS+CSS3模拟溢出滚动效果
Aug 12 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
Feb 12 Javascript
jquery 仿锚点跳转到页面指定位置的实例
Feb 14 Javascript
JS常见算法详解
Feb 28 Javascript
你可能不知道的JSON.stringify()详解
Aug 17 Javascript
浅谈箭头函数写法在ReactJs中的使用
Aug 22 Javascript
如何理解Vue的v-model指令的使用方法
Jul 19 Javascript
微信小程序scroll-view点击项自动居中效果的实现
Mar 25 Javascript
Vue.js暴露方法给WebView的使用操作
Sep 07 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
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
Vue 获取数组键名的方法
2018/06/21 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
2019/05/09 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
python去除文件中重复的行实例
2018/06/29 Python
Python版名片管理系统
2018/11/30 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
安装pyinstaller遇到的各种问题(小结)
2020/11/20 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
工程概预算专业毕业生求职信
2013/10/04 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
管理失职检讨书范文
2015/05/05 职场文书
React自定义hook的方法
2022/06/25 Javascript