Javascript:无法通过 for..in 循环访问对象属性

标签 javascript html css object for-in-loop

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

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.");
    }
  }

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

最佳答案

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

for(var icon_name in icons){
    var icon = icons[icon_name];
    .....code....
}

关于Javascript:无法通过 for..in 循环访问对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19483405/

相关文章:

javascript - 如何通过 html "JS file"调用 "button-click"并且 JS 文件正在使用 shell.js 运行 bash 脚本

html - Css 忽略类规则

Javascript:滚动时从一个 div 滚动到另一个?

CSS 工具提示不适用于 WordPress 页面

javascript - 如何在HTML中分别操作两组选项卡?

javascript - Protractor - 如果 element.getAttribute ('class' )发生变化,则退出嵌套 for 循环

javascript - underscore js _grouby 浏览器差异

javascript - 未捕获的类型错误 : Cannot set property 'product_id' of undefined

html - 使 Bootstrap 输入看起来像 selectize.js 组件中的 input-sm

html - z-index 和定位元素的问题