2011-04-08 73 views
0

在Firefox和铬我可以引用对象值作为这样的:差异IE等浏览器处理javascript对象引用

key = value[0].name 

但这误差IE 8,称‘值[0]。名称’一片空白。
任何想法,为什么发生这种情况?

全码:

 $.each(data, function(key, value){ 
     key = value[0].name.replace(' ', ''); 
     var original = $('.'+key+'Link').attr('href'); 
     var updated = original + '&browseItem='+(this[0]).id; 
     $('.'+key+'Link').attr('href', updated); 
     }); 

和 “数据” 的ID从JSON字符串导出的对象:

[[{"name": "Due", "id": 9}], [{"name": "Fine", "id": 10}], [{"name": "Property Lien", "id": 11}]] 

编辑: 好像它是与高速缓存的问题。感谢所有的答复。

+0

你肯定* *说这是“数据”的对象是什么样子?如果是这样,那么这个代码在IE8中可以正常工作。 – Pointy 2011-04-08 15:51:42

+0

在IE8中显示'alert(JSON.stringify(value))'是什么? – duri 2011-04-08 15:52:15

+0

适用于IE8。检查:http://jsfiddle.net/4GxGG/1/ – Chandu 2011-04-08 15:53:49

回答

1

尝试:

key = (value[0] || value).name.replace(' ', ''); 

看来value已经是数组元素,你需要