2015-11-05 85 views
-1

我有以下的console.log(數據): [{"optionPropertyID":"287","optionID":"106","optionBedrooms":"2","optionSleeps":"1","optionDescription":"1"},{"optionPropertyID":"287","optionID":"105","optionBedrooms":"2","optionSleeps":"1","optionDescription":"1"}]

我想在$。每個函數中使用AJAX我成功回調這裏面的數據,但它會不斷的錯誤在我身上:

success:function(data){ 
     alert(data); 
     console.log(data); 
     $.each(data, function(){ 
    alert("ID: " + this.optionID); 
}); 
      }, 

我收到以下錯誤: 遺漏的類型錯誤:「在」運營商不能使用...

在上的錯誤做一些研究,我需要使用$ .getJSON?但我使用$ .ajax調用來獲取這個數據在第一位...有點困惑..

我只是想遍歷這個返回的數據,併爲每一塊數據創建字段。

input type="text" value="'+this.optionID+'" 

我只是試圖提醒數據回來目前,以確保它正在循環。

+0

http://api.jquery.com/jquery.parsejson/ –

+0

您需要在ajax中指定數據類型json。檢查數據類型 - http://api.jquery.com/jquery.ajax/ - 使用時,您將在控制檯中看到一個Oblect而不是文本,因爲您有 – Tasos

+0

感謝您的快速響應和解釋 – bones

回答

1

您需要添加的選項來實現:

dataType: "json", 

$.ajax通話。這告訴它自動解析JSON。

或者,服務器腳本可以使用

header("Content-type: application/json"); 
+0

太棒了,非常感謝! – bones

1

因爲它是原始文本。回調中的數據在收到時始終爲原始文本。

您必須先使用Object才能使用$.each。你可以用jQuery.parseJSON()

success:function(data){ 
     var dataObject = $.parseJSON(data); 
     $.each(dataObject, function(){ 
    alert("ID: " + this.optionID); 
}); 
      }, 
+0

經驗教訓...謝謝! – bones

0

如果您在返回其他方式的對象周圍請嘗試以下代碼。這對我有用。希望這個幫助。

success : function (data) { 
         $.each(data, function(index, value) { 
         var sampleId = value.optionPropertyID; 
          ... 
         }); 
        }