对于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>

测试结果如下:

上面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元素实测未发现有其他差异

DOM元素的childNodes和children的区别_mole的博客-CSDN博客

childNodes 属性

标准的,childNodes 属性返回节点的子节点集合,以 NodeList 对象。包括HTML节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。

所有主流浏览器都支持 childNodes 属性。

有时候需要获取指定元素的第一个HTML子节点(非属性/文本节点),最容易想到的就是firstChild 属性。代码中第一个HTML节点前如果有换行,空格,那么firstChild返回的就不是你想要的了。可以使用nodeType来判断下。

function getFirst(elem){for(var i=0,e;e=elem.childNodes[i++];){if(e.nodeType==1)return e;}
}

获得 body 元素的子节点集合:

document.body.childNodes;

children 属性

获取 body 元素的子元素集合:

var c = document.body.children;

定义和用法:children 属性返回元素的子元素的集合,是一个 HTMLCollection 对象。

提示: 根据子元素在元素中出现的先后顺序进行排序。使用 HTMLCollection对象的 length属性获取子元素的数量,然后使用序列号(index,起始值为0)访问每个子元素。

children 属性与 childNodes 属性的差别

  • childNodes 属性返回所有的节点,包括文本节点、注释节点;
  • children 属性只返回元素节点;

注:IE6 到 IE8 完全支持 children 属性,但是,返回元素节点和注释节点,IE9 以上版本只返回元素节点。

小tips:HTML DOM中的children和childNodes属性 - 风雨后见彩虹 - 博客园

Html DOM元素的childNodes和children的区别相关推荐

  1. js表单验证处理和childNodes 和children 的区别

    一.对提交表单进行空值验证 html代码: 1 <form action="#"onsubmit="return validate_form(this);" ...

  2. Js-parentNode、parentElement,childNodes、children 的区别

    ---------------------------------------------------------------------- parentNode.parentElement,chil ...

  3. js中firstChild与firstElementChild及childNodes与children的区别

    firstChild: 获取指定元素的第一个子节点 (包括元素节点和文本节点) . 若父元素与第一个子元素之间存在空白节点,firstChild 获取到的将是空白节点而不是第一个子元素.这时可以使用 ...

  4. childNodes和children的区别

    <!DOCTYPE html> <html><head><meta charset="utf-8" /><title>c ...

  5. javascript中childNodes与children的区别

    1.childNodes:获取节点,不同浏览器表现不同: IE:只获取元素节点: 非IE:获取元素节点与文本节点: 解决方案:if(childNode.nodeName=="#text&qu ...

  6. 深入了解parentNode,parentElement,childNodes,children的区别,一看就懂

    今天是准备面试的第七天,js是由ECMAScript.文档对象模型(DOM)和浏览器对象模型(BOM)组成,我们今天就了解下与DOM有关的常用接口parentNode,parentElement,ch ...

  7. childNodes和children,firstChild和firstElementChild,lastChild和lastElementChild的区别

    首先,我们给出HTML的代码 <ul id='city'><li>北京</li><li>南京</li><li>东京</li ...

  8. 遍历DOM元素的children属性遇到的坑

    问题的引出 关于DOM元素的children属性,以前我只在意它和childNodes属性的区别:即children属性只会返回子元素节点集合,而childNodes返回的就不止元素节点,还有文本节点 ...

  9. js中Dom元素及获取方法

    DOM基础对象 document document.documentElement  html部分 document.head document.title document.body  body部分 ...

最新文章

  1. Win2008学习(二),群集的仲裁配置
  2. P3403 跳楼机 同余最短路
  3. 软件测试学习之 ---------- MySQL的查询(重中之重)
  4. 【英语学习】【WOTD】two-bit 释义/词源/示例
  5. SAP澄清概念、理清思路、组织机构
  6. [shell][原创]shell脚本遍历文件夹下所有文件
  7. 管家婆服务器怎么找文件夹,请问管家婆数据备份在哪里?如何恢复?
  8. 第九十九章 SQL函数 NOW
  9. 互联网运营起步 |《从零开始做运营》读书笔记
  10. 为什么我们要减肥?科学家证实肥胖或可导致癌细胞肿瘤生长
  11. ROS——roscpp
  12. 测试基础之一——静态测试,动态测试,黑盒测试,白盒测试,α测试,β测试的定义
  13. 【英语词组】恋恋不忘Day 3-4
  14. IDEA版SpringBoot全教程 08 会员管理系统(中)
  15. Mysql实现统计查询
  16. springboot 使用Druid数据库连接池
  17. toJSON error
  18. 卡拉兹猜想证明用python_科普:数学领域中的感觉像是“民科”的卡拉兹猜想
  19. Matlab将文本转换为数值
  20. 发那科pmc地址分配_发那科PMC地址类型说明

热门文章

  1. 动态追踪技术:trace your kernel Functions!
  2. 幸福女人的投资理财书——会理财的女人最有安全感
  3. C#的特性(Attribute)详解
  4. php ftp 分块下载,关于php支持分块与断点续传文件下载功能代码
  5. Ubuntu22.04与深度学习配置(已搭建三台服务器)
  6. 第十二家面试(上海久科信息技术有限公司 )
  7. 神经网络输入图片大小,神经网络提取图片特征
  8. 软件项目管理系统-项目管理-模块统计-进度统计
  9. 达梦数据库归档类型与数据守护小结
  10. AMBA-AXI(一)burst 传输-INCR/WRAP/Fixed