[使用ajax的JSON数组插入到Select Tag中,仅获得1个值

问题描述 投票:0回答:2

我想获取我在选择选项标签中调用的json数组的所有数据

我正在从这里http://dev.farizdotid.com/api/daerahindonesia/provinsi调用api,这是我得到的json数组

semuaprovinsi: Array(34)
0: {id: "11", nama: "Aceh"}
1: {id: "12", nama: "Sumatera Utara"}
2: {id: "13", nama: "Sumatera Barat"}
3: {id: "14", nama: "Riau"}
4: {id: "15", nama: "Jambi"}
5: {id: "16", nama: "Sumatera Selatan"}
6: {id: "17", nama: "Bengkulu"}
7: {id: "18", nama: "Lampung"}
8: {id: "19", nama: "Kepulauan Bangka Belitung"}
9: {id: "21", nama: "Kepulauan Riau"}
10: {id: "31", nama: "Dki Jakarta"}
11: {id: "32", nama: "Jawa Barat"}
12: {id: "33", nama: "Jawa Tengah"}
13: {id: "34", nama: "Di Yogyakarta"}
14: {id: "35", nama: "Jawa Timur"}
15: {id: "36", nama: "Banten"}
16: {id: "51", nama: "Bali"}
17: {id: "52", nama: "Nusa Tenggara Barat"}
18: {id: "53", nama: "Nusa Tenggara Timur"}
19: {id: "61", nama: "Kalimantan Barat"}
20: {id: "62", nama: "Kalimantan Tengah"}
21: {id: "63", nama: "Kalimantan Selatan"}
22: {id: "64", nama: "Kalimantan Timur"}
23: {id: "65", nama: "Kalimantan Utara"}
24: {id: "71", nama: "Sulawesi Utara"}
25: {id: "72", nama: "Sulawesi Tengah"}
26: {id: "73", nama: "Sulawesi Selatan"}
27: {id: "74", nama: "Sulawesi Tenggara"}
28: {id: "75", nama: "Gorontalo"}
29: {id: "76", nama: "Sulawesi Barat"}
30: {id: "81", nama: "Maluku"}
31: {id: "82", nama: "Maluku Utara"}
32: {id: "91", nama: "Papua Barat"}
33: {id: "94", nama: "Papua"}

这是我的jQuery代码

$(function() {

    var province = $('#provinces');
    var select = $('#selection');
    var option = $('<option>');

    $.ajax({
        type: 'GET',
        dataType: 'json',
        url: 'http://dev.farizdotid.com/api/daerahindonesia/provinsi',
        success: function(provinces) {
            console.log(provinces);

            var allProvince = provinces.semuaprovinsi;

            $.each(allProvince, function (i, item) {
                option.text(item.nama); 
                option.attr('value', item.id);
                select.append(option);
            });
        }
    });
});

它只显示数据的最后一个索引,它是进入我的select标签的索引号33

这是我的选择标签

<select id="selection">
   <option value=""></option>
</select>

我不知道,为什么我只得到1个数据

javascript jquery html json ajax
2个回答
2
投票

您必须为每个选项创建一个新选项。否则修改相同。

$(function() {
  var province = $("#provinces");
  var select = $("#selection");

  $.ajax({
    type: "GET",
    dataType: "json",
    url: "http://dev.farizdotid.com/api/daerahindonesia/provinsi",
    success: function(provinces) {
      console.log(provinces);

      var allProvince = provinces.semuaprovinsi;

      $.each(allProvince, function(i, item) {
        var option = $("<option>");
        option.text(item.nama);
        option.attr("value", item.id);
        select.append(option);
      });
    }
  });
});

0
投票

每次迭代在option内初始化.each

$.each(allProvince, function (i, item) {
    var option = $('<option>');
    option.text(item.nama); 
    option.attr('value', item.id);
    select.append(option);
});
© www.soinside.com 2019 - 2024. All rights reserved.