2013-05-10 149 views
1

我正在做一個ajax調用並返回一個json數據數組。然後,我嘗試在對象上執行每個操作並創建一些HTML。jquery每個對象循環

success: function (data) { 
    var abc = null; 
    var obj = $.parseJSON(data); 
    $.each(obj, function(key, value) { 
    abc += '<option value="' + key + '">' + value + '</option>'; 
    }); 
} 

當我把變量abc放在控制檯的.each函數中,我可以看到輸出。然而,當我試圖從功能。每個外部訪問變量ABC,我得到一個錯誤信息未捕獲的ReferenceError:ABC沒有定義

+0

如何從外部訪問abc? – 2013-05-10 18:20:22

+0

外面在哪裏?成功回調之外?對於字符串追加,您應該將其定義爲'var abc =「」'而不是null。定義null將在字符串的開始處返回一個帶有空值的最終結果。 – 2013-05-10 18:20:34

+0

您需要將abc定義爲全局變量,因爲現在abc只存在於成功函數內部。如果你想使用調用外的數據,你可以看看這個問題http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call – Johnny000 2013-05-10 18:20:34

回答

1

Uncaught ReferenceError: abc is not defined - 因爲錯誤說變量abc是不是從被訪問的地方訪問。

我認爲您正在訪問abc外部成功回調,但abc的範圍在回調中,因爲它在回調中定義。如果要訪問回調之外的變量,可以將var聲明移到外部。

此外,您應該將其定義爲var abc = ""而不是null。定義null會在開始時返回一個最終結果字符串爲null。

+0

它更好向OP添加示例。 – 2013-05-10 18:33:08