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 相关文章推荐
将jQuery应用于login页面的问题及解决
Oct 17 Javascript
JS预览图像将本地图片显示到浏览器上
Aug 25 Javascript
jquery Deferred 快速解决异步回调的问题
Apr 05 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 Javascript
javascript实现无法关闭的弹框
Nov 27 Javascript
JS和canvas实现俄罗斯方块
Mar 14 Javascript
JS图片预加载插件详解
Jun 21 Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 Javascript
layui框架table 数据表格的方法级渲染详解
Aug 19 Javascript
koa-router源码学习小结
Sep 07 Javascript
利用jqgrid实现上移下移单元格功能
Nov 07 Javascript
如何基于viewport vm适配移动端页面
Nov 13 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
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
Python的高级Git库 Gittle
2014/09/22 Python
python中import reload __import__的区别详解
2017/10/16 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
Python对切片命名的实现方法
2018/10/16 Python
python制作图片缩略图
2019/04/30 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
高职教师岗位职责
2013/12/24 职场文书
党校学习思想汇报
2014/01/06 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
Python+Appium自动化测试的实战
2021/06/30 Python