(四)类数组对象的动态性
- HTMLCollection、NodeList以及NamedNodeMap这三个集合都是“动态的”,是有生命,有呼吸的对象。
- 他们实际上是基于DOM结构执行查询的结果,因此DOM结构的变化能够自动反映这些对象中。
- 每当文档结构发生变化时,他们都会得到更新。因此,他们始终会保持着最新、最准确的信息。
我来看一下下面这段代码:
var divs = document.getElementsByTagName("div"); var i = 0; while(i < divs.length){ document.body.appendChild(document.createElement("div")); i++; }
这会是一个死循环!
则是因为divs是通过getElementsByTagName()获取的htmlCollection集合,它是“动态”的。每次执行document.body.appendChild(div)时候,divs.length都会增加。