JavaScript操作DOM元素的childNodes和children区别


Posted in Javascript onApril 01, 2015

对于DOM元素,children是指DOM Object类型的子对象,不包括tag之间隐形存在的TextNode,而childNodes包括tag之间隐形存在的TextNode对象。

具体看一下针对children和childNodes在chrome环境下的测试:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <div id="div1" class="div">
 <span id="s1" class="sp" lang="zh-cn">
 </span>
 </div>
</body>
<script type="text/javascript">
 
 function test() {
 var o = document.getElementById("div1");
 var child = o.children;
 console.log("div1.children运行结果:");
 for(i = 0; i < child.length; i++){
   console.log(child[i].tagName);
  }
 
 console.log("");
 child = o.childNodes;
 console.log("div1.childNodes运行结果:");
 for(i = 0; i < child.length; i++){
   console.log(child[i].tagName);
  }
 
 }
 
 test();

</script>
</html>

测试结果如下:

div1.children运行结果:
 SPAN

 div1.childNodes运行结果:
 undefined
 SPAN
 undefined

上面childNodes集合的结果中有两个undefined节点,这连个就是nodeType=3的TextNode。

如果把HTML代码写成如下样式,那么children和childNodes的结果就没有差别了。

<body>
 <div id="div1" class="div"><span id="s1" class="sp" lang="zh-cn"></span></div>
</body>

对document、head、body及div等HTML元素实测未发现有其他差异

Javascript 相关文章推荐
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
May 07 Javascript
Node.js实战 建立简单的Web服务器
Mar 08 Javascript
通过javascript获取iframe里的值示例代码
Jun 24 Javascript
Jquery选中或取消radio示例
Sep 29 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
Apr 17 Javascript
移动端js触摸事件详解
Sep 18 Javascript
js实现点击按钮弹出上传文件的窗口
Dec 23 Javascript
vue 组件中添加样式不生效的解决方法
Jul 06 Javascript
vue表单自定义校验规则介绍
Aug 28 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
May 22 Javascript
Vue组件实现触底判断
Jun 26 Javascript
原生JS运动实现轮播图
Jan 02 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
Mar 31 #Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
Mar 31 #Javascript
JS显示下拉列表框内全部元素的方法
Mar 31 #Javascript
JS动态改变表格边框宽度的方法
Mar 31 #Javascript
60行js代码实现俄罗斯方块
Mar 31 #Javascript
JS动态修改表格cellPadding和cellSpacing的方法
Mar 31 #Javascript
js实现的牛顿摆效果
Mar 31 #Javascript
You might like
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
js模拟微博发布消息
2017/02/23 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
Python 查看list中是否含有某元素的方法
2018/06/27 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
django 环境变量配置过程详解
2019/08/06 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
python入门之基础语法学习笔记
2020/02/08 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
优秀企业获奖感言
2014/02/01 职场文书
质量月活动策划方案
2014/03/10 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
初二学习计划书范文
2014/04/27 职场文书
个人授权委托书范文
2014/09/21 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python