javascript - 如何将此 JSON 响应放入下拉列表中

标签 javascript jquery json

我正在尝试将从服务器返回的这些数据放入下拉列表中,但不知道该怎么做,因为每个对象名称都以随机 ID 开头。这就是我在这里要做的:

 $("#CampaignOpenActionSubscriber_campaign_id").change(function() {
   var el = $(this);

   $.ajax({
     type: 'POST',
     url: "Dropdownlist",
     data: 'csrf_token=' + $('meta[name=csrf-token-value]').attr('content') +'&Selectedcampaign_id=' + el.val(),
     success: function (response) {
       var jsonResponse = $.parseJSON(response);
       for(var i=0; i< jsonResponse.length; i++){
         $("#selectCourse").append(
           $('<option>').text(jsonResponse[i]).val(jsonResponse[i])
         );               
       }
     }
   });
 });

这就是我从 JSON 响应中得到的...:

 {288878: "FOO", 288881: "BAZZ", 288882: "YOLLO"}

我如何将其放入下拉列表中?

最佳答案

要实现这一点,您需要使用 for..in 循环来遍历从 AJAX 调用返回的对象的键。试试这个:

var jsonResponse = {
  288878: "FOO",
  288881: "BAZZ",
  288882: "YOLLO"
}

var html = '';
for (var key in jsonResponse) {
  html += '<option value="' + key + '">' + jsonResponse[key] + '</option>';
}
$("#selectCourse").append(html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="selectCourse"></select>

另请注意,JSON.parse() 在您的 AJAX success 处理程序中是多余的,因为 jQuery 会在检测到 JSON 时为您反序列化响应。如果这不会自动发生,您可能只需要将 dataType: 'json' 添加到选项中。

关于javascript - 如何将此 JSON 响应放入下拉列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43499129/

相关文章:

javascript - 在 fullpage.js 中重新激活自动滚动

python - 如何使用 scrapy 将多个页面的数据收集到单个数据结构中

javascript - 如果对象内容是用户生成的,如何正确转义对象的 JSON 字符串?

javascript - 如何在配置了 ESLINT 和 Prettier 的行尾使用 NOSONAR?

javascript - 如何合并对象数组?

javascript - 如何从 Controller 返回 jsp 作为弹出窗口

javascript - 根据数据库时间播放视频

javascript - 如何对对象数组进行排序?

如果选择器返回多个元素,则 JQuery 抛出异常

ios - 改进通过JSON将服务器数据库镜像到客户端数据库的过程?