首页 > 代码库 > 将nodeList转换为数组(兼容性)

将nodeList转换为数组(兼容性)

将nodeList转换为数组(兼容性)

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

 

在IE8以前的浏览器中nodes非JScript对象而是COM对象,所以

Array.prototype.slice.call(nodes,0);

会出错

需要catch来捕获错误,然后手动创建数组

将nodeList转换为数组(兼容性)