Alu*_*ard 2 javascript arrays internet-explorer for-loop object
data 是一个Json数据的数组每个对象的结构是:
var data = [
{
id: 0,
img: "image_src",
width: 107,
height: 80,
shadowBoxLink: "....",
th: {
width: 107,
height: 70,
img: "src"
}
},
{
id: 1,
img: "image_src",
width: 107,
height: 80,
shadowBoxLink: "....",
th: {
width: 107,
height: 80,
img: "src"
}
}
];
Run Code Online (Sandbox Code Playgroud)
当我尝试在循环中访问数组时(仅在IE8,IE7中发生):
for(var i in data) {
var imgHeight = data[i].th.height;
}
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:"无法获取"height"属性,引用为null或未定义"
(我翻译了法语的消息:Impossible d'obtenirlapropriété«height»d'uneréférencenullounondéfinie)
我究竟做错了什么?
访问数组元素可以在语义上更加完成,如下所示:
for(var i = 0, n = data.length; i < n; i ++) {
var imgHeight = data[i].th.height;
...
}
Run Code Online (Sandbox Code Playgroud)
for..in 循环意味着与基于键的对象一起使用.
注意:您的对象中也有一个缺少的结束引号:
th: Object {
width: 107,
height: 80,
img: "src /* NEED A CLOSING " HERE */
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4976 次 |
| 最近记录: |