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 相关文章推荐
许愿墙中用到的函数
Oct 07 Javascript
javascript replace()正则替换实现代码
Feb 26 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
Apr 18 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
Aug 05 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
Dec 22 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 Javascript
vue动态生成dom并且自动绑定事件
Apr 19 Javascript
JS中使用textPath实现线条上的文字
Dec 25 Javascript
JavaScript设计模式之单例模式简单实例教程
Jul 02 Javascript
vue脚手架搭建项目的兼容性配置详解
Jul 17 Javascript
修改Vue打包后的默认文件名操作
Aug 12 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版
2006/10/09 PHP
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
PHP生成器简单实例
2015/05/13 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
python Opencv将图片转为字符画
2021/02/19 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
经典的班主任推荐信
2013/10/28 职场文书
简历中求职的个人自我评价
2013/12/03 职场文书
公司合作意向书范文
2014/07/30 职场文书
个人委托书如何写
2014/09/25 职场文书
业务内勤岗位职责
2015/04/13 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers