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 获取链接(url)参数的方法
Feb 15 Javascript
前端js文件合并的三种方式推荐
May 19 Javascript
详解js实现线段交点的三种算法
Aug 09 Javascript
详解vue-router2.0动态路由获取参数
Jun 14 Javascript
jquery插件开发之选项卡制作详解
Aug 30 jQuery
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 jQuery
使用bootstrap实现下拉框搜索功能的实例讲解
Aug 10 Javascript
react同构实践之实现自己的同构模板
Mar 13 Javascript
详解Vue路由自动注入实践
Apr 17 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
Apr 13 Javascript
微信小程序之高德地图多点路线规划过程示例详解
Jan 18 Javascript
浅谈JS的原型和原型链
Jun 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
利用 window_onload 实现select默认选择
2006/10/09 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
详解vue 命名视图
2019/08/14 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
Python GAE、Django导出Excel的方法
2008/11/24 Python
python简单分割文件的方法
2015/07/30 Python
Python检测生僻字的实现方法
2016/10/23 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
个人能力自我鉴赏
2014/01/25 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
见习报告怎么写
2014/10/31 职场文书
领导干部考核评语
2015/01/04 职场文书
运动与健康自我评价
2015/03/09 职场文书
公司规章制度范本
2015/08/03 职场文书
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis