如何从 JSON 填充下拉项目? [复制]

Posted

技术标签:

【中文标题】如何从 JSON 填充下拉项目? [复制]【英文标题】:How to populate dropdown items from JSON? [duplicate] 【发布时间】:2017-08-09 03:30:44 【问题描述】:

我有一个选择元素,我想从 javascript 添加选择选项。我有一个 ajax 方法,该方法返回 JSON 对象,例如;

""serverTypes":["WINDOWS","LINUX"]"

我想从这个 JSON 添加选项。有没有办法做到这一点?

<select id="serverTypes" name="serverType" class="form-control"></select>

编辑: 设置值无效

$('#serverTypes').val(jsonData);

【问题讨论】:

【参考方案1】:

您可以遍历JSONappend() 的值:

var json = 
  "serverTypes": ["WINDOWS", "LINUX"]
;
for (var x = 0; x < json.serverTypes.length; x++ ) 
  var option = json.serverTypes[x];
  $('#serverTypes').append('<option value="' + option + '">' + option + '</option>')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="serverTypes" name="serverType" class="form-control"></select>

【讨论】:

【参考方案2】:

var data = "serverTypes":["WINDOWS","LINUX"];
var serverTypes = data.serverTypes;

var option;
for (var i in serverTypes) 
    if (serverTypes.hasOwnProperty(i) && i!="length")
        option = $('<option></option>');
        option.val(serverTypes[i]);
        option.text(serverTypes[i]);

        $("#serverTypes").append(option);
    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="serverTypes" name="serverType" class="form-control"></select>

【讨论】:

这是我见过的最糟糕的遍历数组的方式! @ibrahimmahrir 你有没有在纯 JS 中看到更好的实现,也适用于 IE for(var i = 0; i &lt; serverTypes.length; i++) ... 呢???你熟悉吗??? 好多了。无论如何,这里没有必要生气,所以请冷静下来。 没有愤怒!我只是给了你一个提示而已!

以上是关于如何从 JSON 填充下拉项目? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何存储json下拉列表中的项目

如何使用 Hibernate 和 JPA 处理填充下拉列表?

从相邻下拉列表的单元格中输入数据时,如何删除填充颜色?

在 Flutter 应用程序中单击时如何为下拉按钮中的项目设置填充

如何从Laravel中的数据库记录中填充下拉菜单项

添加表格行,表格数据包含从数据库填充的下拉列表