喜欢:
var result = eval('(' + response + ')');
var html = value = '';
for(item in result)
{
}
response
是json的回复。
它停在IE8中的for..
。
如何解决这个问题?
修改
我在运行时遇到了同样的错误:
result = [1,2,3];
for(item in result)
{
...
}
答案 0 :(得分:5)
我在IE8中测试了来自JavaScript For...In Statement的代码,没问题。
绝对不是循环的问题(在IE8中不起作用),而是'result'对象中的内容。
更新:
我发现了这个问题。
在IE8中(不确定其他IE版本)“item”这个词不知何故是一个保留词或什么的。
这将有效:
var item;
for(item in result)
{
...
}
这不会(如果未声明item
):
for(item in result)
{
...
}
这将有效:
for(_item in result)
{
...
}
答案 1 :(得分:0)
您应该使用item
明确声明var
。使用for..in
的标准习惯如下,并且只应用于对象(而不是数组)的迭代:
for ( var item in result ) {
if ( !result.hasOwnProperty(item) ) {
// loop body goes here
}
}