使用数组中的数据动态创建选择框

我正在尝试使用数组内的数据动态创建一个选择框,我尝试观看一些JSON教程,但仍然遇到一些麻烦。

var clothes = [ Red Dress:"reddress.png", Blue Dress:"bluedress.png", Black Hair Pin:"hairpin.png" ]; var select = ''; for(var i=0;i<clothes.length;i++) { select +=''+firstPart[i]+''; } $('#select_box_wrapper').append(select+''); $('#clothing_options').change(function() { var image_src = $(this).val(); $('#clothing_image').attr('src','http://www.imagehosting.com/'+image_src); }); 

正如您所看到的,代码没有完全正常运行,因为它没有正确编写。 如何从第二部分获取值的数据,从第一部分获取选项文本? 基本上html应该是这样的

   Red Dress Blue Dress Black Hair Pin  

感谢您的任何解释或建议。 只是想让这段代码起作用,因为我只是为自己做这些代码

您可以将数组更改为JSON对象..

 var clothes = { "Red Dress":"reddress.png", "Blue Dress":"bluedress.png", "Black Hair Pin":"hairpin.png" }; 

然后迭代变得更容易..

 for(var item in clothes) { $('').appendTo('#clothing_options'); } 

这是HTML:

 

演示

第一个问题:

 var clothes = { Red_Dress:"reddress.png", Blue_Dress:"bluedress.png", Black_Hair_Pin:"hairpin.png" }; 

您不能在标识符中包含空格。

其次,循环一个对象:

  for (var key in clothes) { select +=''; } 

当然,这会产生在选择框中显示“Red_Dress”的不良影响。

 var clothes = { "Red Dress":"reddress.png", "Blue Dress":"bluedress.png", "Black Hair Pin":"hairpin.png" }; 

这将解决它。