从存储在变量中的选项创建选择框

时间:2014-07-10 19:05:45

标签: javascript jquery html select

我想从存储在变量中的选项中创建一个选择框(值将根据用户而改变)。

目前,我只想在我的javascript文件中使用此变量:

  var resp = {"streams": [ {"sweet":"cookies"}, {"savory":"pizza"}]}

在html文件中,我有一个select id" selectedStream"

如何调用html中的select id和javascript中的变量来创建选择框?

我已经看过如下所示的示例,但我不明白如何将ID和变量链接到框中。

  $("option:selected", myVar).text()

我希望这是连贯的!感谢

2 个答案:

答案 0 :(得分:3)

我认为你要做的是将选项html节点附加到屏幕上现有的select元素,其id为'selectedStream'。您希望使用'resp'变量中的数据来填充要追加的选项节点的文本和值。如果这是正确的,我已经使用this jsfiddle实现了该功能。 javascript也在下面:

$(function(){
   var resp = {"streams": [ {"sweet":"cookies", "savory":"pizza"}]};
   var streamData = resp.streams[0];
   var optionTemplate = "<option value=\"{0}\">{1}</option>";
   for(var key in streamData){
       var value =  streamData[key];
       var currentOptionTemplate = optionTemplate;
       currentOptionTemplate = currentOptionTemplate.replace("{0}", key);
       currentOptionTemplate = currentOptionTemplate.replace("{1}", value);
       $("#selectedStream").append($(currentOptionTemplate));
   }
});  

答案 1 :(得分:0)

该阵列是否必要?如果你只是想在那个对象中显示键,我会创建一个 for loop

var resp = { "streams": {"sweet": "cookies", "savory": "pizza"} }

for (property in resp.streams) {
    $('#selectStream').append($('<option/>', {text: property, value: property}));
}

JSFiddle: http://jsfiddle.net/pWFNb/