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 window.opener的用法分析
Apr 07 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
May 15 Javascript
jQuery中使用animate自定义动画的方法
May 29 Javascript
javascript数组常用方法汇总
Sep 10 Javascript
浅析vue component 组件使用
Mar 06 Javascript
使用node.js搭建服务器
May 20 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
Dec 22 Javascript
jQuery+CSS实现的table表格行列转置功能示例
Jan 08 jQuery
JS中获取 DOM 元素的绝对位置实例详解
Apr 23 Javascript
vue组件(全局,局部,动态加载组件)
Sep 02 Javascript
vue.extend与vue.component的区别和联系
Sep 19 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
Jul 22 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操作mysql数据库的基本类代码
2014/02/25 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
使用PHP开发留言板功能
2019/11/19 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
python 实现A*算法的示例代码
2018/08/13 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
使用Python提取文本中含有特定字符串的方法示例
2020/12/09 Python
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
教师的实习鉴定
2013/12/15 职场文书
平面设计求职信
2014/03/10 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
大学生创业计划书常用模板
2019/08/07 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python