在jquery + ajax中迭代json子数组数据

时间:2015-10-22 15:27:20

标签: jquery arrays json ajax

我试图从json数组中获取数据并使用jquery和ajax填充select字段,我的json看起来像这样:

{
"regioni": 
[
    {
        "nome": "Abruzzo",
        "capoluoghi": ["Chieti", "L'Aquila", "Pescara", "Teramo"],
        "province":["CH","AQ","PE","TE"]
    },
    {
        "nome": "Basilicata",
        "capoluoghi": ["Matera", "Potenza"],
        "province":["MT","PZ"]
    },
    {
        "nome": "Calabria",
        "capoluoghi": ["Catanzaro", "Cosenza", "Crotone", "Reggio Calabria", "Vibo Valentia"],
        "province":["CZ","CS","KR","RC","VV"]
    }
]}

我现在要做的就是采取唯一的名字"字段并使用for循环迭代它,但它似乎无法正常工作:

            var parsa = $.parseJSON(data);
$select = $('.c-select');
            for(var i=0; i<parsa.regioni.nome; i++){
                $select.append('<option>'+ parsa.regioni[i].nome +'</option>')
            }

有什么不对?             }

1 个答案:

答案 0 :(得分:0)

更改

i<parsa.regioni.nome;

i<parsa.regioni.length;

然而,直接地,您可以迭代data.regioni。像这样:

$(function() {
  var data = {
    "regioni": [{
      "nome": "Abruzzo",
      "capoluoghi": ["Chieti", "L'Aquila", "Pescara", "Teramo"],
      "province": ["CH", "AQ", "PE", "TE"]
    }, {
      "nome": "Basilicata",
      "capoluoghi": ["Matera", "Potenza"],
      "province": ["MT", "PZ"]
    }, {
      "nome": "Calabria",
      "capoluoghi": ["Catanzaro", "Cosenza", "Crotone", "Reggio Calabria", "Vibo Valentia"],
      "province": ["CZ", "CS", "KR", "RC", "VV"]
    }]
  };

  var $select = $('.c-select');
  for (var i = 0; i < data.regioni.length; i++) {
    $select.append('<option>' + data.regioni[i].nome + '</option>');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="c-select"></select>