Javascript 无法读取IE8中的对象属性
我有以下代码,但它在IE8中不起作用(在Firefox中工作得非常完美): 有人能告诉我出了什么事吗?Javascript 无法读取IE8中的对象属性,javascript,json,internet-explorer,Javascript,Json,Internet Explorer,我有以下代码,但它在IE8中不起作用(在Firefox中工作得非常完美): 有人能告诉我出了什么事吗? 谢谢。状态是IE中的保留关键字。请尝试重命名您的变量。尝试以下操作: response = eval('({"success":true,"statuses":[{"title":"Unknown","code":"UNKNOWN","cssClass":"sys_unknown","id":1}]})'); var s = response.statuses; for (var i=0,l
谢谢。状态是IE中的保留关键字。请尝试重命名您的变量。尝试以下操作:
response = eval('({"success":true,"statuses":[{"title":"Unknown","code":"UNKNOWN","cssClass":"sys_unknown","id":1}]})');
var s = response.statuses;
for (var i=0,len = s.length;i<len;i++) {
var st = s[i];
if (typeof st.id != 'undefined') {
alert('ID = ' + st.id);
}
}
response=eval(“({“success”:true,“status”:[{“title”:“Unknown”,“code”:“Unknown”,“cssClass”:“sys_Unknown”,“id”:1}]}”);
var s=响应状态;
对于(var i=0,len=s.length;i首先,尝试始终使用var
关键字声明变量。如果不这样做,它们将成为窗口
对象的属性,有效地将它们添加到全局范围
它不起作用的原因是因为这一行:status=response.status[i];
您不需要重命名变量,因为您不在全局范围内,只要您使用var关键字声明它:
var status=response.status[i];
您也不应该使用for/in
迭代数组。您应该使用一般形式:for(var i=0;i
'。
response = eval('({"success":true,"statuses":[{"title":"Unknown","code":"UNKNOWN","cssClass":"sys_unknown","id":1}]})');
var s = response.statuses;
for (var i=0,len = s.length;i<len;i++) {
var st = s[i];
if (typeof st.id != 'undefined') {
alert('ID = ' + st.id);
}
}