使用jQuery填充Dropdownlist项

时间:2012-10-15 14:47:08

标签: jquery asp.net

我们在ASP.NET转发器中生成一个下拉列表,如下所示 -

<asp:DropDownList ID="ddlQty" runat="server">
    <asp:ListItem Text="0" Value="0" Selected="True" />
</asp:DropDownList>

因此页面上会生成几个下拉列表。对于所有这些列表,我尝试填充包含1 to 10的值的项目。

jQuery(document).ready(function () {

    var ddlQty = jQuery("select[id$='ddlQty']");                
    jQuery.each(ddlQty, function () {
        var curDdl = jQuery(this).next();            
        for (i = 1; i <= 10; i++)
            curDdl.append(jQuery('<option>', { value: i, text: i }));
    });
});

此代码不起作用,请你帮忙。

谢谢!

修改

感谢您的所有响应,问题所在,generating ID of repeaters,转发器控件ID被*** ddlQty_0替换,所以我必须在jQuery中使用包含通配符。

固定代码。

jQuery(document).ready(function(){

var ddlQty = jQuery("select[id*='ddlQty']");

jQuery.each(ddlQty, function () {
    var curDdl = jQuery(this);
    for (i = 1; i <= 10; i++)
        curDdl.append(jQuery('<option>', { value: i, text: i }));
});

});

1 个答案:

答案 0 :(得分:2)

尝试更换:

var curDdl = jQuery(this).next();

使用:

var curDdl = jQuery(this);

您不需要处理DOM中的下一个元素,但需要使用当前元素作为下拉列表。

您的代码也可以简化一下:

jQuery(document).ready(function () {

    jQuery('select[id$="ddlQty"]').each(function() {
        var curDdl = jQuery(this);
        for (i = 1; i <= 10; i++) {
            curDdl.append(jQuery('<option>', { value: i, text: i }));
        }
    });
});