在IE9中获取具有键值问题的对象

时间:2014-04-04 15:55:49

标签: javascript internet-explorer for-loop internet-explorer-9

我遇到的问题只发生在IE9中,在Chrome或Firefox中都不会发生。

基本上我有一个名为Results的对象,它包含多个对象。我只是尝试使用名称作为每个对象的键来对结果对象中的对象进行简单的循环,但由于某种原因使用对象的名称作为键或尝试数字索引不会返回任何来自IE9中的结果。使用数字索引不会在任何浏览器中返回对象。

结果对象在运行时看起来像这样,它取自FireBug,对于格式

抱歉
    results
     []

    NUMBER0
    Object { type="textbox", name="NUMBER0", answer="3125"}

    NUMBER1
    Object { type="textbox", name="NUMBER1", answer="135"}

Number0和Number1是结果中对象的名称。

这是我使用的简单for循环,下面的项目的值为" Number0"或" Number1":

     for (item in results) {
         var question = results[item];
         // do something with question here
     }

正如我在FireFox和Chrome中所说,这会返回正确的对象,我可以继续,但在IE9中它不起作用。我没有尝试任何其他版本的IE,我确保IE9不是IE 7或8模式。

任何想法都会很棒。

安东尼

1 个答案:

答案 0 :(得分:1)

看起来results是数组[],所以如果它不为空,则“数字索引”应该有效。尝试通过它迭​​代:

for (var i=0; i < results.length; i++) {
   var question = results[i]
}

除非它是一个空数组对象,其他项目已分配给它作为属性。在那种情况下......我建议重新考虑你的设计。