首页 > 语言 > JavaScript > 正文

JavaScript操作DOM元素的childNodes和children区别

2024-05-06 16:18:00
字体:
来源:转载
供稿:网友

这篇文章主要介绍了JavaScript操作DOM元素的childNodes和children区别,本文直接给出测试代码和运行效果来讲解它们之间的区别,需要的朋友可以参考下

对于DOM元素,children是指DOM Object类型的子对象,不包括tag之间隐形存在的TextNode,而childNodes包括tag之间隐形存在的TextNode对象。

具体看一下针对children和childNodes在chrome环境下的测试:

 

 
  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <meta charset="UTF-8"
  5. <title>Insert title here</title> 
  6. </head> 
  7. <body> 
  8. <div id="div1" class="div"
  9. <span id="s1" class="sp" lang="zh-cn"
  10. </span> 
  11. </div> 
  12. </body> 
  13. <script type="text/javascript"
  14.  
  15. function test() { 
  16. var o = document.getElementById("div1"); 
  17. var child = o.children; 
  18. console.log("div1.children运行结果:"); 
  19. for(i = 0; i < child.length; i++){ 
  20. console.log(child[i].tagName); 
  21.  
  22. console.log(""); 
  23. child = o.childNodes; 
  24. console.log("div1.childNodes运行结果:"); 
  25. for(i = 0; i < child.length; i++){ 
  26. console.log(child[i].tagName); 
  27.  
  28.  
  29. test(); 
  30.  
  31. </script> 
  32. </html> 

测试结果如下:

 

 
  1. div1.children运行结果: 
  2. SPAN 
  3.  
  4. div1.childNodes运行结果: 
  5. undefined 
  6. SPAN 
  7. undefined 

上面childNodes集合的结果中有两个undefined节点,这连个就是nodeType=3的TextNode。

如果把HTML代码写成如下样式,那么children和childNodes的结果就没有差别了。

 

 
  1. <body> 
  2. <div id="div1" class="div"><span id="s1" class="sp" lang="zh-cn"></span></div> 
  3. </body> 

对document、head、body及div等HTML元素实测未发现有其他差异

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选