手机
当前位置:查字典教程网 >编程开发 >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)】相关文章:

JS函数实现鼠标指向图片后显示大图代码

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

三种AngularJS中获取数据源的方式

JavaScript实现的MD5算法完整实例

js实现一个链接打开两个链接地址的方法

jQuery实现控制文字内容溢出用省略号(…)表示的方法

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

JavaScript中的函数嵌套使用

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

jQuery异步上传文件插件ajaxFileUpload详细介绍

精品推荐
分类导航