时间:2021-05-18
有时需要将数组转成伪数组(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]);
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
!important可被FireFox和IE7识别*可被IE6、IE7识别_可被IE6识别*+可被IE7识别IE专用的条件注释
ie7和ie6都不能识别display:table-cell;(但是支持display:block等css1的属性!)ie8以及以后版本可以识别!ie7和ie6
ie6专用:_height:100px;ie7专用:*+html.box{height:100xp;}ie6和ie7公用:*height:100px;ie7和f
在IE6和IE7中这个版本的IE流量器中,对display:inline-block属性支持不佳,这也是一个经典的BUG。有两种方式解决这个问题,让IE6/IE
csshover相信做前端开发都知道,IE6、IE7都不支持:active伪类,IE6更甚,连:hover伪类都不支持。为了解决这个问题,一般都会引入一个css