我有一个动态生成的下拉选择菜单。它使用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'下拉组件。那么我可以尝试其他任何方式吗?
答案 0 :(得分:0)
您的下拉列表不会被填充(请检查控制台是否有错误),因此将任何值设置为#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()