在AJAX成功回调中使用$ .each

时间:2015-11-05 21:55:14

标签: php jquery mysql ajax

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

我试图在我的AJAX成功回调中的$ .each函数中使用这些数据,但它一直在我身上出错:

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

我收到以下错误: 未捕获的TypeError:无法在'中使用'运营商...

在对错误进行一些研究时,我需要使用$ .getJSON?但我首先使用$ .ajax调用来获取这些数据......有点困惑......

我只想迭代这些返回的数据并为每个数据创建字段。

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

我只是试图提醒当前的数据,以确保它循环。

3 个答案:

答案 0 :(得分:1)

因为它是原始文本。收到回调中的数据时始终是原始文本。

您必须从中Object使用$.each。您可以使用jQuery.parseJSON()

执行此操作
success:function(data){
       var dataObject = $.parseJSON(data);
       $.each(dataObject, function(){
    alert("ID: " + this.optionID);
});
           },

答案 1 :(得分:1)

您需要添加选项:

dataType: "json",

$.ajax来电。这告诉它自动解析JSON。

或者,服务器脚本可以使用

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

答案 2 :(得分:0)

如果您以其他方式返回对象,请尝试下面的代码。这对我有用。希望这有帮助。

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