Node是什么?
是一个接口。
许多DOM API都会继承于它,如document
, Element
document.getElementById
的返回值就是一个继承于Node的对象
常用的API有:
Node.childNodes
只读 返回一个该节点所有的即时更新的NodeList
Node.nodeName
只读 返回节点名,如 DIV
, IMG
Node.lastChild
只读 最后一个Node,若没有则是null
Node.firstChild
只读 第一个Node,若没有则是null
NodeList是什么?
它是一个节点
的集合,可以通过document.querySelectorAll
返回一组静态
的NodeList。
如,
const parentNode = document.getElementById('content')
const nodeList = parentNode.querySelectorAll('div')
console.log(nodeList) // 假设这里的值是5
const newElement = document.createElement('div')
parentNode.append(newElement) // 插入一个DOM
console.log(nodeList) // 这里的nodeList仍是5
也可以通过 Node.childNodes
返回一组动态
的NodeList
Node.childNodes/返回包含指定节点的子节点的集合,该集合为即时更新的集合(live collection)。/
const parentNode = document.getElementById('content')
const nodeList = parentNode.childNodes
console.log(nodeList) // 假设这里的值是5
const newElement = document.createElement('div')
parentNode.append(newElement) // 插入一个DOM
console.log(nodeList) // 这里的nodeList会变为6
那么要如何遍历Node呢?
查看Node的原型链,它并没有继承于Array,所以它不具有Array的方法。
但是,除非在特别老的浏览器下,否则它现在都具有forEach
的方法,你也可以用Array.from
去转为数组进行遍历。
相关文章: