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调用浏览器打印功能实例分析
Jul 17 Javascript
JS实现的自定义网页拖动类
Nov 06 Javascript
BootStrap Tooltip插件源码解析
Dec 27 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
Jan 18 Javascript
js获取当前周、上一周、下一周日期
Mar 19 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
Jul 27 Javascript
Vue实现typeahead组件功能(非常靠谱)
Aug 26 Javascript
深入理解Node.js中通用基础设计模式
Sep 19 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
Apr 12 Javascript
JavaScript Array对象基本方法详解
Sep 03 Javascript
微信小程序 wxParse插件显示视频问题
Sep 27 Javascript
jQuery实现的解析本地 XML 文档操作示例
Apr 30 jQuery
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基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
thinkphp备份数据库的方法分享
2015/01/04 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
使用js如何实现全选与全不选
2013/12/30 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
Python正则表达式完全指南
2017/05/25 Python
Python实现选择排序
2017/06/04 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
python 对key为时间的dict排序方法
2018/10/17 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
python版DDOS攻击脚本
2019/06/12 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
python实现从wind导入数据
2019/12/03 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
《小池塘》教学反思
2014/02/28 职场文书
银行职员自我鉴定
2014/04/20 职场文书
还款承诺书范文
2014/05/20 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers