2013-03-08 73 views
0

你好我有一個簡單的getJSON調用,我已經在我的網站上實現。它工作正常,但IE7似乎輸出和錯誤。任何人都可以告訴我發生了什麼事?JSON請求.each不在IE7中工作,但在其他瀏覽器上正常工作

var output = ''; 
    var fullurl = 'myurl' 
    $.getJSON(fullurl, function(json) { 

    $.each(json, function(i,d) { 
     output = '<span style="font-size:11px;"><b>Name :</b> '+d.Name+'</span><br>'; 
     output += '<span style="font-size:11px;"><b>Date :</b> '+d.Date+'</span><br><br>'; 
     output += '<span style="font-size:11px;"><b>Description :</b> '+d.Description+'</span><br>'; 
    }); 
    $('#description').append(output); 

有兩種錯誤坡平了

Error: Object doesn't support this property or method 
Error: Expected identifier, string or number 

任何幫助將不勝感激!

謝謝。

+2

,哪些錯誤是 – Rafay 2013-03-08 21:23:09

+0

哪裏是'output'定義? – 2013-03-08 21:26:54

+0

@RocketHazmat完整的網址,我會更新代碼。 – BaconJuice 2013-03-08 21:33:53

回答

2

解決這類問題的最佳方法是將IE的副本放入IE7仿真中,然後使用F12啓動調試器。然後,您可以在$.each()行上設置斷點並檢查JSON調用的結果。然後,您可以在.each()迭代中進一步設置斷點,並逐步遍歷每個斷點,直到遇到錯誤並可以看到導致錯誤的數據/代碼。 IE控制檯也可能會告訴你究竟是哪一行代碼導致了錯誤。

如果您希望我們猜測可能是錯誤的,這裏是我的猜測:

  1. 如果你沒有得到任何JSON數據,那麼就沒有什麼上運行.each()input永遠不會初始化。當您嘗試執行$('#description').append(output);時,output可能未定義,從而導致錯誤。

  2. 另外,input應該聲明爲局部變量。

  3. 此外,您當前的代碼不累積循環的所有迭代中的input值 - 它只是獲取最後一次迭代。我不確切知道你的意圖是什麼,但你可能想要在循環外面初始化input,並在循環內部使用+=來完成所有三行。這將積累,而不是取代每個循環。

下面是結合這些更改代碼:

var fullurl = 'myurl'; 
$.getJSON(fullurl, function(json) { 
    var output = ""; 
    $.each(json, function(i,d) { 
     output += '<span style="font-size:11px;"><b>Name :</b> '+d.Name+'</span><br>'; 
     output += '<span style="font-size:11px;"><b>Date :</b> '+d.Date+'</span><br><br>'; 
     output += '<span style="font-size:11px;"><b>Description :</b> '+d.Description+'</span><br>'; 
    }); 
    $('#description').append(output); 
}); 
+0

修好了,謝謝。你能解釋一下我對你的看法嗎? – BaconJuice 2013-03-08 21:37:51

+1

如果您使用F12調出IE調試窗口,該窗口有一個瀏覽器模式菜單,您可以在其中選擇IE7。 – jfriend00 2013-03-08 21:40:14

+0

什麼也不顯示了,當我按下F12 – BaconJuice 2013-03-08 21:44:37

相關問題