Js把對象數組列表轉換成數組


今天寫組件的時候遇到一個問題,就是當我需要對獲取到的對象列表進行刪減的時候,發現沒有合適的方法,比如:

//獲取圖片列表
var imgs = document.getElementsByTagName("img");

這個列表可以用imgs[0]的數組方法訪問元素,但是不能用數組的方法進行編輯.

shift()等數組方法無效

removeChild()無效

delete imgs[0]無效

從網上查了查有個方法可以把這對象列表返回成數組:

aImg = Array.prototype.slice.call(imgs);

但是這方法不支持ie,於是就有了現在的最終方法:

function convertToArray(nodes){
    var array = null;
    try{
        array = Array.prototype.slice.call(nodes,0);
    }catch(ex){
        array = [];
        for(var i = 0,len =nodes.length; i < len; i++){
            array[i] = nodes[i];
        }
    }
    return array;
}

w3c通過try的方式來實現,因為IE的節點列表實現為一個com對象!所以。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM