手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
摘要:有时需要将数组转成伪数组(ArrayLike),如下复制代码代码如下:varary=['one','two','three'];varobj...

有时需要将数组转成伪数组(ArrayLike),如下

复制代码 代码如下:

var ary = ['one','two','three'];

var obj = {}; // 没有length属性

Array.prototype.push.apply(obj, ary);

for(var i in obj){

alert(i + ': ' + obj[i]);

}

IE8/9/Firefox/Safari/Chrome 依次弹出了obj的key及其value。即能转换成ArrayLike。

但IE6/7下则不能,没有输出任何信息表明obj仍然是个空对象。

如果给obj加个length属性,情况则不同

复制代码 代码如下:

var ary = ['one','two','three'];

var obj = {length:0}; // 有length,值为0

Array.prototype.push.apply(obj, ary);

for(var i in obj){

alert(i + ': ' + obj[i]);

}

这次IE6/7(所有浏览器)中均弹出了key及其value,都能转换成ArrayLike

注意,length只能赋值为0而非它值,否则得到的对象key和value就不是一一对应的了。

复制代码 代码如下:

var ary = ['one','two','three'];

var obj = {length:2}; // 有length,非零值

Array.prototype.push.apply(obj, ary);

for(var i in obj){

alert(i + ': ' + obj[i]);

}

【对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)】相关文章:

JavaScript Base64编码和解码,实现URL参数传递。

JQuery分屏指示器图片轮换效果实例

微信jssdk在iframe页面失效问题的解决措施

网页常用Javascript

判断checkbox选择的个数 多浏览器

JavaScript中的函数嵌套使用

png在IE6 下无法透明的解决方法汇总

document 和 document.all 分别什么时候用

document.getElementById的一些细节

Javascript实现每日自动换一张图片的方法

精品推荐
分类导航