对于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. php7 configure: error: Cannot find OpenSSL‘s <evp.h> 问题解决
  2. linux 源码安装详解
  3. yolo 识别 狗狗自行车
  4. 线下门店场景化互动类产品浅析
  5. tomcat ajp协议安全限制绕过漏洞_国家信息安全漏洞共享平台发布Apache Tomcat漏洞安全公告...
  6. android 通知历史,Android 4.3人性新功能:查看通知历史
  7. 【自适应盲均衡2】多径衰落信道的复数常模算法(CMA)的理论推导与MATLAB仿真
  8. SIP协议(基础技术知识)
  9. python程序写完后点哪个运行快_让 Python 代码运行更快的最佳方式!
  10. java里函数式表达式_java8入门(lambda表达式、函数式接口相关)
  11. Oracle【IT实验室】数据库备份与恢复之三:OS备份/用户管理的备份与恢复
  12. 2020电信最新套餐一览表_最新!2020年宁波中学排名一览表
  13. 【图像压缩】基本matlab DCT+量化+huffman JPEG图像压缩【含Matlab源码 1217期】
  14. 信息学奥赛一本通(C++)版在线评测系统网址
  15. docker nginx反向代理配置内部端口502 bad gateway
  16. Excel 公式复制同步到其他单元格
  17. imx6ull-arm开发板和电脑网线直连通信
  18. Google - Android 12 更新预览
  19. Processing编写熊猫
  20. win10上运行linux程序吗,Win10可以运行 Linux 的图形界面程序了

热门文章

  1. Excel 新增对话式智能分析功能
  2. php通用下载方法,PHP实现下载断点续传的方法
  3. php文件断点续传,php超大文件及断点续传下载函数
  4. buildroot 编译qt ERROR: Feature ‘xxxxx‘ was enabled, but the pre-condition ‘YYYYY‘ ‘ZZZZZ‘ failed
  5. 【新手入门】全网最全Leap Motion技术总结
  6. 关于星云图获取最大面积的C++案例的DEMO
  7. 国内类kickstarter(众筹)网站搜集
  8. 最新闲鱼数据采集软件【2019年4月更新】
  9. python航空公司客户价值分析
  10. 华为交换机业务口堆叠