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 相关文章推荐
JS文本获得焦点清除文本文字的示例代码
Jan 13 Javascript
jquery控制display属性为none或block
Mar 31 Javascript
node.js中的fs.chmodSync方法使用说明
Dec 18 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
Sep 27 Javascript
JavaScript html5利用FileReader实现上传功能
Mar 27 Javascript
jquery实现的table排序功能示例
Mar 10 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
Nov 17 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
Mar 06 Javascript
vue-cli3+typescript初体验小结
Feb 28 Javascript
vue使用showdown并实现代码区域高亮的示例代码
Oct 17 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
Oct 29 Javascript
vue学习笔记之slot插槽基本用法实例分析
Feb 01 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
javascript 写类方式之三
2009/07/05 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
Node.js实现数据推送
2016/04/14 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
应聘收银员个人的求职信
2013/11/30 职场文书
公休请假条
2014/04/11 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
应急处置方案
2014/06/16 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
python 模块重载的五种方法
2021/04/24 Python
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android