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 相关文章推荐
javascript中获取选中对象的类型
Apr 02 Javascript
jquery showModelDialog的使用方法示例详解
Nov 19 Javascript
一个简单的jquery进度条示例
Apr 28 Javascript
js实现遮罩层划出效果是生成div而不是显示
Jul 29 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
Jul 27 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
Aug 30 Javascript
AngularJS表单和输入验证实例
Nov 02 Javascript
浅谈jquery拼接字符串效率比较高的方法
Feb 22 Javascript
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
详解ECMAScript typeof用法
Jul 25 Javascript
基于游标的分页接口实现代码示例
Nov 12 Javascript
vue 如何从单页应用改造成多页应用
Oct 23 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 高手之路(一)
2006/10/09 PHP
php 图片上传类代码
2009/07/17 PHP
请离开include_once和require_once
2013/07/18 PHP
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
拥抱模块化的JavaScript
2012/03/07 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
js实现简单计算器
2015/11/22 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
python通过get,post方式发送http请求和接收http响应的方法
2015/05/26 Python
python的exec、eval使用分析
2017/12/11 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
学python爬虫能做什么
2020/07/29 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
Servlet的生命周期
2013/08/25 面试题
机械电子工程毕业生自荐信
2013/11/23 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
员工工作表现评语
2014/04/26 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
安全教育主题班会教案
2015/08/12 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL