Javascript 动态生成的下拉选择器的设置值

Javascript 动态生成的下拉选择器的设置值,javascript,jquery,html,Javascript,Jquery,Html,我有一个动态生成的下拉选择菜单。它使用html select语法生成,然后使用.after方法简单地插入。然后我使用ajax调用获取选择器的元素,并像这样填充它 $($.parseJSON(msg)).map(function () { return $('<option>').val(this.id).text(this.name); }).appendTo('#item'); 我甚至试着具体地确定这个项目。因为它在html表中,像这样 $('#item').v

我有一个动态生成的下拉选择菜单。它使用html select语法生成,然后使用.after方法简单地插入。然后我使用ajax调用获取选择器的元素,并像这样填充它

 $($.parseJSON(msg)).map(function () {
      return $('<option>').val(this.id).text(this.name);
  }).appendTo('#item');
我甚至试着具体地确定这个项目。因为它在html表中,像这样

$('#item').val('5');
$("#itemTable > tfoot > tr.items").find("td:eq(0) [name='item']").val('5');
当我手动创建下拉列表时,上述代码在其他情况下也可以正常工作。因此,我认为上述两种尝试实际上都没有识别“item”下拉组件。那么,还有其他方法可以尝试吗?

jquery documentations for说:“如果希望处理普通数组或对象,请使用jquery.map()

您的下拉列表将不会填充(检查控制台是否有错误),因此将任何值设置为#item都将无效

试试这个:

var options = $.map($.parseJSON(msg), function (n, i) {
    return $('<option>').val(n.id).text(n.name);
});
$("#item").append(options);
var options=$.map($.parseJSON(msg),函数(n,i){
返回$('').val(n.id).text(n.name);
});
$(“#项目”)。附加(选项);
使用此代码,drowdown将被填充,然后
$(“#项”).val(“5”)
将工作


JSFiddle:

顺便说一句,我尝试在上述代码之后查看'item'的值,它返回5。但它不会显示在UI中。实际上填充我的下拉列表效果很好。我正在努力设定特定的人口价值。但是我很乐意尝试你的建议。当然,伙计!当下拉列表像这样手动创建时,它会工作。我甚至多次使用它。但我的下拉列表是在飞行中创建的。我将尝试创建一个JSFIDLE…保留旁观者,就像我在代码中遗漏了什么一样,因为我无法在这里复制错误。我已经把你的代码和我的代码合并在一起了,效果很好。谢谢你!我看到您正在创建具有相同id的多个选择框。请记住id是唯一的,所以“项目”id仅设置为第一个选择框。顺便问一下,为什么有多个选择框?我允许用户选择多个项目,现在我正在尝试检索这些值并在每个下拉列表中设置。我也在考虑更改ID,可能是基于每个索引。再次感谢!