无法循环JSON文件以创建可操作的结果以填充下拉列表

时间:2013-05-15 18:20:29

标签: jquery ajax json

我在记住如何遍历对象以将其操作为选择表单对象中的选项时遇到问题。我已经做到这一点,但成功函数内部的警报只是打印“对象对象”。我以前做过这个,但我只是生锈了,感谢任何帮助。

function getDestinations()
{
$.ajax({
    dataType:'json',
    type:'GET',
    url:"json/destinations.json",
    success:function(data) {
        for (var dest in data.Destinations) {
            alert(dest.destinationName)
        }

    }
});
}

警报即将显示为“未定义”,但它们循环的次数正确。

有关详细信息,每个返回的结果都是填充一个下拉列表,该列表将在选中后使用其“destinationID”填充包含所选位置的天气信息的div。

3 个答案:

答案 0 :(得分:2)

$.each(object, function(index,value){
    //do stuff
});

答案 1 :(得分:1)

试试这个 -

success:function(data) {
        $.each(data.Destinations, function(i,v){
           alert(v.destinationName);
        });
}

填充select

  $("#selectID").empty();
  $.each(data.Destinations, function(i,v){
          var dest = v.destinationName;
          $("#selectID").append("<option value="+dest+">"+dest+"</option>");
  });

答案 2 :(得分:1)

其他答案是正确的,但这就是为什么你所做的不起作用。 当你为每个循环执行a时,变量会在你给它的任何内容中遍历索引/键。

for (var dest in data.Destinations){
    // dest is an index/key within the data.Destinations variable
    // So you refer to it using
    alert(data.Destinations[dest].destinationName);
}

我希望有所帮助。