1

我们在 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(文档).ready(函数(){

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 }));
});

});

4

1 回答 1

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 }));
        }
    });
});
于 2012-10-15T14:49:20.207 回答