举例来区别两者:
html代码:
<div id="box">
<span></span>
<a href=""></a>
</div>
<div name='box2'>
<span></span>
<a href=""></a>
</div>
js代码测试:
相同点:那HTMLCollection 对象和 NodeList 对象很相似,都是类数组,都是获取dom元素。
不同点:
//NodeList 对象 是静态集合;NodeList只能使用数字索引引用。
toString.call(document.querySelectorAll('div'))//"[object NodeList]"
//HTMLCollection 对象 是动态集合;HTMLCollection实例对象可以用id属性或name属性引用节点元素,或数字
toString.call(document.getElementsByTagName('div')) //"[object HTMLCollection]"
至于如何区分静态和动态,就是create一个元素,通过getElementsByTagName能获取到新create的,而querySelectorAll不行。
还有就是静态的就是只能同过document.xxx。