2013-10-12 64 views
0

我有一个动态生成的下拉选择菜单。它使用html选择语法生成,然后使用.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

顺便说一句我试图看到上面的代码后“项目”的值,并将其返回5.但它不是在UI显示。 – altsyset

回答

0

jquery documentations为map()说:“如果你想处理一个普通的数组或对象,请改用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:http://jsfiddle.net/6Us9N/

+0

实际上填充我的下拉菜单很好。在人口问题之后,我正在努力设定具体的价值。但我很乐意尝试你的建议。 – altsyset

+0

检查jsfiddle http://jsfiddle.net/6Us9N/ –

+0

可靠的人!当下拉菜单被创建为手动时,它可以工作。我甚至反复使用过它。但我的下拉是在飞行中创建的。我会尝试创建一个jsfiddle ...等待 – altsyset

相关问题