2011-04-08 76 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已經是數組元素,你需要