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 に答える