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

时间:2013-10-12 11:43:08

标签: javascript jquery html

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

 $($.parseJSON(msg)).map(function () {
      return $('<option>').val(this.id).text(this.name);
  }).appendTo('#item');

现在在此代码填充'item'下拉菜单后,我必须将其设置为某个元素,比如第五个。所以我试着这样做。

$('#item').val('5');

我甚至试图专门识别该项目。因为它在html表中,就像这样。

$("#itemTable > tfoot > tr.items").find("td:eq(0) [name='item']").val('5');

当我手动创建下拉列表时,上述代码在其他情况下工作正常。所以我认为上述两种尝试都没有实际识别'item'下拉组件。那么我可以尝试其他任何方式吗?

1 个答案:

答案 0 :(得分:0)

<{3}}的jquery文档说:“如果你想处理一个普通的数组或对象,请使用jQuery.map()代替。”

您的下拉列表不会被填充(请检查控制台是否有错误),因此将任何值设置为#item将不起作用。

试试这个:

var options = $.map($.parseJSON(msg), function (n, i) {
    return $('<option>').val(n.id).text(n.name);
});
$("#item").append(options);

使用此代码, drowdown将填充,然后$("#item").val("5")将起作用。

JSFiddle:map()