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实现table单双行不同显示并能单行选中
Jul 25 Javascript
Jquery Ajax.ashx 高效分页实现代码
Oct 20 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
Jan 01 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
Dec 06 Javascript
JS获取html对象的几种方式介绍
Dec 05 Javascript
JavaScript实现打字效果的方法
Jul 10 Javascript
每天一篇javascript学习小结(属性定义方法)
Nov 19 Javascript
Highcharts学习之坐标轴
Aug 02 Javascript
JS回调函数基本定义与用法实例分析
May 24 Javascript
深入浅出webpack之externals的使用
Dec 04 Javascript
JS自定义滚动条效果
Mar 13 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
Apr 08 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 递归效率分析
2009/11/24 PHP
PHP clearstatcache()函数详解
2010/03/02 PHP
基于PHP常用函数的用法详解
2013/05/10 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
php实现的简单日志写入函数
2015/03/31 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
php取出数组单个值的方法
2018/03/12 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
[01:02:45]完美世界DOTA2联赛 LBZS vs Forest 第三场 11.07
2020/11/09 DOTA
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
python实现随机梯度下降(SGD)
2020/03/24 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
python集合的创建、添加及删除操作示例
2019/10/08 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
2014年人事工作总结范文
2014/11/19 职场文书