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 相关文章推荐
更优雅的事件触发兼容
Oct 24 Javascript
jQuery学习笔记 获取jQuery对象
Sep 19 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
Nov 28 Javascript
jQuery中replaceWith()方法用法实例
Dec 25 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
Jun 08 Javascript
Jquery和Js获得元素标签名称的方法总结
Oct 08 Javascript
深入探究node之Transform
Jul 20 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
vue中使用better-scroll实现滑动效果及注意事项
Nov 15 Javascript
在vue项目中引入highcharts图表的方法
Jan 21 Javascript
小程序和web画三角形实现解析
Sep 02 Javascript
vue登录注册实例详解
Sep 14 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实现定时生成HTML网站首页实例代码
2008/11/20 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
使用Python开发windows GUI程序入门实例
2014/10/23 Python
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
学校岗位设置方案
2014/01/16 职场文书
幼儿园老师辞职信
2014/01/20 职场文书
后勤个人工作总结
2015/02/28 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书