首先,我们给出HTML的代码

<ul id='city'><li>北京</li><li>南京</li><li>东京</li><li>南宁</li>
</ul>
<button id='btn'>点我</button>

一、childNodes和children的区别

先看看childNodes

window.onload = function() {var btn = document.getElementById('btn');btn.onclick = function() {var city = document.getElementById('city');var cns = city.childNodes;console.log(cns.length);cns.forEach(function(item){console.log(item.innerHTML);})}
}


可以看到childNodes除了获取到4个 li 元素节点还有5个空白文本节点

如果将HTML的代码变成这样,childNodes则得到4个 li 元素节点

<ul id='city'><li>北京</li><li>南京</li><li>东京</li><li>南宁</li></ul>
<button id='btn'>点我</button>

再来看children

window.onload = function() {var btn = document.getElementById('btn');btn.onclick = function() {var city = document.getElementById('city');var cns = city.children;console.log(cns.length);for(var i = 0; i < cns.length; i++) {console.log(cns[i].innerHTML);}}
}


children拿到的是子元素节点,不会拿到到空白文本节点

二、firstChild和firstElementChild的区别

firstChild

window.onload = function() {var btn = document.getElementById('btn');btn.onclick = function() {var city = document.getElementById('city');var cns = city.firstChild;console.log(cns.innerHTML);}
}


如果在 ul 标签和 li 标签之间有空格或者空行的话,firstChild 拿到的是第一个的空白文本节点

firstElementChild

window.onload = function() {var btn = document.getElementById('btn');btn.onclick = function() {var city = document.getElementById('city');var cns = city.firstElementChild;console.log(cns.innerHTML);}
}


不管在 ul 标签和 li 标签之间是否有空格或者空行,firstElementChild 拿到的都是第一个子元素节点

三、lastChild和lastElementChild的区别

同理:

lastChild:父标签和最后一个子标签之间有空格或空行时,拿到的是空白文本节点

lastElementChild:不管父标签和最后一个子标签之间是否有空格或空行,拿到的都是最后一个子元素节点

childNodes和children,firstChild和firstElementChild,lastChild和lastElementChild的区别相关推荐

  1. javascript中childNodes与children的区别

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

  2. javascript中childNodes与children 区别 以及firstChild与firstElementChild区别

    1:childNodes属性: 标准的,它返回指定元素的子元素集合,包括html节点,所有属性,文本.可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属 ...

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

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

  4. firstElementChild firstChild 以及childNodes和children方法

    [转]js下firstElementChild,firstChild ,childNodes,children 一. <div><p>123</p> </di ...

  5. 浅谈childNodes和children以及firstChild和firstElementChild

    1.childNodes属性: 返回指定元素的子节点集合,包括元素节点和文本节点. 除了IE9和Firefox,其他浏览器都支持通过childNodes[i]获取第i个子节点. 2.children属 ...

  6. firstChild、lastChild 和 firstElementChild、lastElementChild 的区别

    文章目录 一.前言 二.Node.prototype.firstChild,Node.prototype.lastChild 三.ParentNode.firstElementChild.Parent ...

  7. firstChild和firstElementChild兼容

    firstChild,在现代浏览器中会选中空格文本节点.而IE8及以下的IE浏览器不会选中空白文字节点.现代浏览器运行如下: <ul>    <li></li>   ...

  8. 兼容firstChild和firstElementChild

    1.nextSibling和nextElementSibling 顾名思义,就是找下一个节点 nextSibling在低版本浏览器中可以顺利找到下一个元素节点,而在正常浏览器中找到的包含中间空格. n ...

  9. Html DOM元素的childNodes和children的区别

    对于DOM元素,children是指DOM Object类型的子对象,不包括tag之间隐形存在的TextNode,而childNodes包括tag之间隐形存在的TextNode对象. 具体看一下针对c ...

最新文章

  1. 吴恩达、谷歌、Facebook纷纷开源研究数据集
  2. 一定是h的方式不对阅读_20T/H中水 超滤回用处理系统
  3. word和html互换,word与html互转(2) -- html转word
  4. ERP框架开发中的License许可验证机制设计与实现 (包含源代码下载)
  5. bootice添加黑苹果引导_OpenCore Configurator v2.6.0.0 黑苹果OC引导配置工具
  6. qt connect函数_Qt官方示例广播发送器
  7. [渝粤教育] 西南科技大学 现代汉语 在线考试复习资料
  8. RHadoop协同过滤算法
  9. 基于虚拟化的安全性怎么关闭,无法开启虚拟机!
  10. 数字孪生城市,智慧城市可视化技术解决方案案例
  11. JVM系列(十三)——垃圾回收器
  12. 巴西龟饲养日志----养龟第二年开始
  13. 喝酒神器小程序源码+全新带特效/多种游戏/支持流量主
  14. Docker容器安装最快最简单__编程小黑马
  15. 【图像加密】基于matlab行列像素置乱+DWT图像加密【含Matlab源码 675期】
  16. Unity 实战项目 | Unity实现 双屏或多屏幕 显示效果
  17. Harmony OS 设备开发学习记录(六)-- 通过PWM模块播放音乐
  18. phpcms默认模板目录解析
  19. AlexNet网络练习
  20. springboot+vue新生宿舍报修管理系统

热门文章

  1. 2021-07-01验证用户账号密码登录,三次输入错误要验证码
  2. Mentor Tanner EDA Tools version 16.30模拟/混合信号集成电路设计
  3. #BDA#笔记#阶段一:了解商业数据分析数据分析的通用流程
  4. 进入系统后长时间无反应症状【丶Demond CSDN博客】
  5. 项目的管理工具 ----- Maven
  6. PPP、HDLC协议配置
  7. 北京一对男同性恋者举行婚礼 誓言不离不弃
  8. 查看首选DNS服务器地址
  9. 【arduino】I/O端口操作
  10. 使用MDC增强日志记录