将NodeList转化成数组

每一个节点都有一个ChildNodes属性,其中保存着一个类数组对象,有length属性,同时可以通过item()或者[]来访问每一项,当然,也可以转化成数组

转化方法

function ConvertToArray(nodes){
    var array=null;
    try{
        array=Array.prototype.slice.call(nodes,0);//非ie浏览器  ie8-将NodeList实现为COM对象,不能用这种方式检测
    }catch(ex){//ie8-
        array=new Array();
        for(var i=0;i<nodes.length;i++){
            array.push(nodes[0]);
        }
    }
return array;
} 

知识点

1、Array.prototype.slice.call()实现类数组到数组的转化

2、DOM中的变化会自动反映在ChildNodes中

3、try-catch可以当做一种检测怪癖(bug)的方式


猜你喜欢

转载自blog.csdn.net/wangxiuyan0228/article/details/80462874