document.getElementsByTagName()方法的返回值

在阅读《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);

输出为:

好读书,求甚解

原文地址:https://www.cnblogs.com/planetwithpig/p/12014793.html