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判断DOM何时加载完毕的技巧
Nov 11 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
Apr 16 Javascript
javascript动态向网页中添加表格实现代码
Feb 19 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
Mar 18 Javascript
AngularJS基础学习笔记之控制器
May 10 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
jquery取消事件冒泡的三种方法(推荐)
May 28 Javascript
JavaScript中的Array 对象(数组对象)
Jun 02 Javascript
手机软键盘弹出时影响布局的解决方法
Dec 15 Javascript
jQuery滚动监听实现商城楼梯式导航效果
Mar 06 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
Sep 28 Javascript
vue中的v-model原理,与组件自定义v-model详解
Aug 04 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下使用strpos需要注意 === 运算符
2010/07/17 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
PDO::quote讲解
2019/01/29 PHP
Javascript实例教程(19) 使用HoTMetal(6)
2006/12/23 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
2016/10/10 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
js中实现继承的五种方法
2021/01/25 Javascript
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
python中MySQLdb模块用法实例
2014/11/10 Python
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
python 获取字符串MD5值方法
2018/05/29 Python
python+tkinter实现学生管理系统
2019/08/20 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
PPP协议组成及简述协议协商的基本过程
2015/05/28 面试题
C#笔试题和英文面试题
2013/02/07 面试题
作弊检讨书1000字
2014/02/01 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
关于运动会的广播稿50字
2014/10/17 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
毕业证明书
2015/06/19 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
Nginx配置https的实现
2021/11/27 Servers
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server