在閱讀《JS DOM 編程一書》一書時,看到getElementByTagName函數返回值為數組,然后自己驗證了下,發現不是數組,而是一個可遍歷的HTMLCollection對象
HTML:
<h1>需要買什么</h1>
<p>不要忘記買以下東西</p>
<ul id='purchase'>
<li>香蕉</li>
<li>蘋果</li>
<li>桃子</li>
</ul>
<div>這是你要買的東西</div>
<div id='hello'>你好</div>
<div id="info"></div>
JS:
window.onload=function(){ var divs=document.getElementsByTagName('div'); console.log(divs); console.log(typeof divs); //object console.log(divs instanceof Array);//返回false //由此可見,getElementsByTagName方法,返回的不是一個Array //而是一個dom對象,可以遍歷 var info=document.getElementById('info'); info.innerHTML=Object.prototype.toString.call(divs); }
控制台顯示結果如下:

geteLElementsByTagName()返回值可使用for循環進行遍歷,且集合內是一個一個的對象。以上面的例子為例
for(var i=0;i<divs.length;i++){ console.log(divs[i]);
console.log(typeof divs[i]); }
控制台輸出為:

那么如何獲取HTMLCollection對象中的對象呢
方式一:通過index獲取,繼續上面的栗子
var div1=divs[0]; console.log(div1); console.log(typeof div1);
輸出:
![]()
方式二:通過["id"]獲取
var hdiv=divs["hello"]; console.log(hdiv); console.log(typeof hdiv);
輸出為:

好讀書,求甚解
