NodeList和HtmlCollection的不同
2019-08-13 本文已影响0人
欣_m
1.NodeList实例对象是一个类数组对象,它的成员是节点对象。Node节点共有12种,Element元素节点只是其中一种。
动态集合:动态集合是指DOM结构的变化能够自动反映到所保存的对象中。
<div id="test"></div>
<script>
var childN = test.childNodes;
console.log(childN); //[]test.appendChild(document.createElement('div'));
console.log(childN); //[div]</script>
静态集合: NodeList并不都是动态集合,其中querySelectorAll()返回值就是静态集合NodeStaticList。
<div id="test"></div>
<script>var seles = test.querySelectorAll('div');
console.log(seles);//[]test.appendChild(document.createElement('div'));
console.log(seles);//[]console.log(test.querySelectorAll('div'));//[div]</script>
NodeList是类数组对象,并不是真正的数组对象,可以使用slice()方法将其变成真正的数组。
2.HTMLCollection集合主要是Element元素节点的集合。
HTMLCollection集合包括getElementsByTagName()、getElementsByClassName()、getElementsByName()等方法的返回值,以及children、document.links、document.forms等元素集合。
所有的HTMLCollection对象都是动态的。