首页 > 语言 > 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.  
  23. console.log(""); 
  24. child = o.childNodes; 
  25. console.log("div1.childNodes运行结果:"); 
  26. for(i = 0; i < child.length; i++){ 
  27. console.log(child[i].tagName); 
  28. } 
  29.  
  30. } 
  31.  
  32. test(); 
  33.  
  34. </script> 
  35. </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元素实测未发现有其他差异

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

图片精选