Skip to content

类数组转换为数组 #21

@Yangxiaqing

Description

@Yangxiaqing
<body>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
<script>
    var oLis = document.getElementsByTagName('div');
    console.dir(oLis);//HTMLCollection元素集合类的一个实例,它也是一个类数组集合
 
    oLis = document.getElementByName('yang');
    console.dir(oLis);//NodeList节点集合,它也是一个类数组
</script>
</body>
var oLis = document.getElementsByTagName('div');
// 标准浏览器中
var ary = Array.prototype.slice.call(oLis);
console.log(ary);//[div, div, div, div, div]

在IE6~8浏览器中,不支持借用数组的slice实现将元素集合(节点集合)的类数组转换为数组
--->SCRIPT5014:Array.prototype.slice:'this' 不是 JavaScript 对象(报错)
所以用以下这种:

for (var i = 0; i < oLis.length; i++) {
		ary[ary.length] = oLis[i];
	}

但是对于arguments借用数组的方法是不存在任何兼容性问题的

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions