使用jQuery将选项插入到返回的JSON数组中进行选择

时间:2018-04-09 18:36:27

标签: jquery json ajax

在将选项插入选择框时,我有点困惑。我发现了另一个类似于我的问题,但我对“关键和价值”的引用感到困惑。

所以我目前有以下脚本:

                        $.each(data.visibilities, function(key, value) {   
                             $('#dataVisibilitySelect')
                                 .append($("<option></option>")
                                            .attr("value",key)
                                            .text(value)); 
                        });

将可见性(目前有3个)拉入选择框。但我不确定function(key,value)

的顶线

目前,data.visibilities作为数组返回如下:

visibilities
[…]
0   {…}
id  1
label   Dispatch
created_at  2017-12-11 09:18:13
updated_at  2017-12-11 09:18:13
1   {…}
id  2
label   Private
created_at  2017-12-11 09:18:13
updated_at  2017-12-11 09:18:13
2   {…}
id  3
label   Public
created_at  2017-12-11 09:18:29
updated_at  2017-12-11 09:18:29

如何将其返回以便将id用作值并将标签用作选项文本?

1 个答案:

答案 0 :(得分:0)

key保存索引,值保存项目的value。因此,如果要在JSON中访问label的值,可以使用以下变量:value.label

我认为这就是你要找的东西

&#13;
&#13;
<head>
  <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
</head>

<select id="dataVisibilitySelect">

</select>

<script>
  $(document).ready(function() {
    $.each(data.visibilities, function(key, value) {
      $('#dataVisibilitySelect')
        .append("<option value=" + value.id + ">" + value.label + "</option>");
    });
  });

  data = {
    "visibilities": [{
        "id": 1,
        "label": "Dispatch"
      },
      {
        "id": 2,
        "label": "Private"
      },
      {
        "id": 3,
        "label": "Public"
      }
    ]
  };
</script>
&#13;
&#13;
&#13;