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 相关文章推荐
二级域名转向类
Nov 09 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
Dec 03 Javascript
jQuery中:disabled选择器用法实例
Jan 04 Javascript
jQuery中Ajax的get、post等方法详解
Jan 20 Javascript
详解AngularJS中的表达式使用
Jun 16 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
Dec 11 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
Jun 30 Javascript
Vue实现自带的过滤器实例
Mar 09 Javascript
Angular 4.0学习教程之架构详解
Sep 12 Javascript
PHP自动加载autoload和命名空间的应用小结
Dec 01 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 jQuery
layui原生表单验证的实例
Sep 09 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
解决中英文字符串长度问题函数
2007/01/16 PHP
php不用正则采集速度探究总结
2008/03/24 PHP
php目录管理函数小结
2008/09/10 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
如何在PHP中使用数组
2020/06/09 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
node.js入门教程
2014/06/01 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
跟老齐学Python之正规地说一句话
2014/09/28 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
Python3爬虫学习入门教程
2018/12/11 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
Python调用C语言程序方法解析
2020/07/07 Python
美国电视购物:QVC
2017/02/06 全球购物
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
Linux文件操作命令都有哪些
2016/07/23 面试题
毕业生自我鉴定
2013/11/05 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书