奇怪的IE 7 javascript问题

mar*_*ark 4 javascript stomp orbited internet-explorer-7

我有这个javascript代码在firefox,chrome和safari中工作

for (idx in all_auction_ids){
    alert(all_auction_ids[idx]);
};
Run Code Online (Sandbox Code Playgroud)

对于上面的,而不是获取值all_auction_ids,我得到的第一个值是类型函数的文本,看起来像一个for循环!

但是,如果我运行下面的代码,它工作正常.

for (idx=0;idx<all_auction_ids.length;idx=idx+1){
    alert(all_auction_ids[idx]);
};
Run Code Online (Sandbox Code Playgroud)

编辑:更新

我做了一些调试并发现,添加Orbited和stomp.js可能正在对数组做些什么!

现在我正在使用Tracker1的建议jquery的$ .each.

更多信息:http: //groups.google.com/group/orbited-users/browse_thread/thread/7fd658cfb166e9fa

有问题的数组 http://bayimg.com/fAnhaAaBb

没有问题的数组 http://bayimg.com/FaNhEAabb

bob*_*nce 5

JavaScript的for/in构造传统上用于迭代对象成员名称,而不是数组索引.更具前瞻性的浏览器添加了隐藏属性等功能,以帮助像您期望的方式枚举Array这样的情况,但IE仍然以老派的方式进行,并在您使用时为您提供类似'toString'方法的对象成员/在一个数组上.

indexed-for仍然是规范的JavaScript数组循环.(虽然你可能的意思是'for(var idx = ...','idx ++'更常见.)