3

我有一个 ASP.NET CheckBoxList:

<asp:CheckBoxList ID="CheckBoxList1" runat="server" Width="10%">
    <asp:ListItem Selected="True" Value="1">White</asp:ListItem>
    <asp:ListItem Selected="False" Value="2">Black</asp:ListItem>
    <asp:ListItem Value="3">Red</asp:ListItem>
    <asp:ListItem Value="4">Green</asp:ListItem>
    <asp:ListItem Value="5">Blue</asp:ListItem>
</asp:CheckBoxList>

我需要修改/删除 CheckBoxList 中特定 CheckBox 的特定标签:

以下代码适用于 CheckBox 值,但不适用于 CheckBox 标签。

var CheckBoxListInputValue = 3; //value may be dynamic
var CheckBoxListInputInnerHTML = "Red"; //value may be dynamic
$("#CheckBoxList1 label[innerHTML =" + CheckBoxListInputInnerHTML + "]").remove(); //Not working
$("#CheckBoxList1 :input[value = " + CheckBoxListInputValue + "]").remove(); //Working

顺便说一句,我不想​​使用任何 for 循环。

4

2 回答 2

1

asp.net 从您的复选框列表中生成一个表,为了删除一个选项,您必须实际删除一个 TR。以下代码删除示例中的 Red 选项,然后您可以使用动态值更改 Red

  $('#CheckBoxList1 label').each(function () {
        if ($(this).text() == 'Red') {
            $(this).closest('tr').remove();
            return false;
        }
    });

在这里测试

于 2012-07-25T19:03:40.737 回答
0

你可以使用:contains选择器:

$("#CheckBoxList1 label:contains(" + CheckBoxListInputInnerHTML + ")").remove(); 

请注意,:input选择器已弃用,您可以input改用。

于 2012-07-25T17:09:31.940 回答