JavaScript中HTMLCollection和NodeList的区别

HTMLCollection是HTML元素的集合

NodeList是一个文档节点集合

什么意思呢?听起来是不是很空洞?下面可以通过一个小实例给大家讲解一下:

 

我们创建一个parent的父容器,在parent下创建两个子元素

然后我们在js中拿到这个parent的容器,然后通过parent.childNodes返回该节点的所有子节点

那么其实可以看到他的子节点是一个NodeList(文档节点集合),它包括了parent下的所有子节点(包括节点元素和文本元素)

那么我们再用parent.children语句返回一下

 

可以看到这个时候返回了一个HTMLCollections(HTML元素集合) ,那么他其实只返回了这个父节点下面的HTML节点元素的集合,并没有返回文本元素

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Web开发,`document`, `Node`, 和 `NodeList(namednodemap)` 是三个相关的概念,它们涉及到HTML或XML文档的处理: 1. **document**: 在JavaScript,`document` 是一个全局对象,代表了当前网页的HTML文档。你可以使用它来获取或操作页面上的元素、属性、事件等。例如,`document.getElementById(id)` 可以用来找到具有指定ID的元素。 2. **Node**: 在DOM(Document Object Model),`Node` 是所有文档对象的基类,包括元素节点(Element)、文本节点(Text)等。每个节点都有其自身的属性和方法,如`childNodes` 和 `parentElement`,用于遍历和操作文档结构。 3. **NodeList(namednodemap)**: `NodeList` 是一种表示文档节点集合的数据结构,但请注意,这个术语通常是指旧版DOM的行为,特别是在IE6-8等较老的浏览器。在现代浏览器,`NodeList` 是一个类似数组的接口,而不是一个真正的类。它类似于`document.querySelectorAll()` 的返回值,提供了对节点的遍历,但是不支持数组的方法。在现代浏览器,你会更常见地看到`HTMLCollection` 或 `NodeList` 类型转换为 `Array` 对象。 在JavaScript,如果你想要操作一个NodeList,你需要使用 `.item(index)` 或索引访问,而不是像数组那样用方括号。例如: ```javascript var nodeList = document.getElementsByTagName('div'); for (var i = 0; i < nodeList.length; i++) { console.log(nodeList[i].textContent); } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值