0

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

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

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

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

我什至试图具体识别该项目。由于它在html表中,就像这样。

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

当我手动创建下拉列表时,上面的代码在其他情况下工作正常。所以我认为上述两种尝试实际上都没有识别“项目”下拉组件。那么我还有其他方法可以尝试吗?

4

1 回答 1

0

jquery 文档map()说:“如果您希望处理普通数组或对象,请改用 jQuery.map()。”

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

尝试这个:

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

使用此代码,下拉菜单将被填充,然后$("#item").val("5")将起作用。

JSFiddle:http: //jsfiddle.net/6Us9N/

于 2013-10-12T12:07:59.383 回答