3

我正在尝试访问实际上位于另一个对象内的对象的属性(名称)。我在一个文件中初始化了对象:

var icons = {

    "facebook": {name: 'facebook', icon_url: 'img/logos/facebook.png'}

};

然后尝试使用以下代码检查对象:

   var icon_current_class;

  for(var icon in icons){

    console.dir(icon);
    //outputs an object named facebook but says it has no properties

    if( $(this).hasClass( icon.name ) ){
      icon_current_class = icon.name;
    }else{
      alert("Something went wrong. Please contact the mods.");
    }
  }

当然,每次我运行它时都会发出警报(“出现问题”)。我已经尝试了很长时间以找到解决方案,但无济于事。有人可以帮忙吗?

4

2 回答 2

6
for(var icon in icons)

在 for 循环中,icon分配给您的不是对象,而是每个项目的索引/键。

for (var i in icons){
    console.dir(icons[i]);
...
于 2013-10-20T22:03:59.127 回答
6

for(var x in y) x是对象的键,需要用来y[x]返回值:

for(var icon_name in icons){
    var icon = icons[icon_name];
    .....code....
}
于 2013-10-20T22:05:47.740 回答