javascript - Ajax 添加选项以选择每个 json 数组

标签 javascript jquery ajax json

我需要使用从 ajax 调用中获得的值来填充一个选择项,我将这些值返回为 json 数组。使用下面的代码,创建的选择没有任何选项。

$.ajax({
  type: "GET",
  url: "/wp-content/gta/search_airport.php",
  data: {city: t_city}
}).done(function(resp){
  var sel = $('<select name="airport" id="slt">').appendTo('#pick_type');
  $.each(resp, function() {
$.each(this, function(k, v) {
$('<option>').val(k).text(v).appendTo('#slt');
   });
  });
});

示例 json 数组

[{"name":"Los Angeles","code":"LAX"},{"name":"San Francisco","code":"SFO"}]

我希望选项类似于 <option value="LAX">Los Angeles</option>

最佳答案

您不需要嵌套的 $.each()。只需遍历数组并直接访问每个索引处的对象的属性:

$.each(resp, function(k, v) {
    $('<option>').val(v.code).text(v.name).appendTo('#slt');
});

在第一次迭代中,v 将是 {"name":"Los Angeles","code":"LAX"},因此 v。 code 将是 "LAX"。在第二次迭代中,v 将是 {"name":"San Francisco","code":"SFO"},所以 v.code 将是 "SFO"...

(您可能还需要将 dataType:"json" 添加到您的 $.ajax() 选项 - 如果您没有指定 jQuery 会尝试解决它来自响应的 MIME 类型。)

关于javascript - Ajax 添加选项以选择每个 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20941538/

相关文章:

javascript - 通过fetch()向后端API发送POST请求时,body只有key没有value

javascript - 如何实现JS从HTML到WordPress?

javascript - 如何根据一个月的天数循环表的<tr>?

javascript - JS减少重复代码

javascript - 全面屏条纹设计

javascript - ajax POST 不发送对象的一部分

javascript - 如何在 jQuery 中创建无限循环?

javascript - jquery函数改变html标签

jquery - 如何解决请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - 自动刷新 ASP.NET 不闪烁页面