jQuery ASP.NET通过CheckBox标签的innerHTML在CheckBoxList中查找特定的CheckBox

时间:2012-07-25 16:59:14

标签: jquery asp.net

我有一个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

BTW,我不想使用任何for循环。

2 个答案:

答案 0 :(得分:1)

asp.net从您的复选框列表中生成一个表,并且为了删除一个选项,您必须实际删除TR。以下代码删除样本上的红色选项,然后您可以使用动态值

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

Test it here

答案 1 :(得分:0)

您可以使用:contains选择器:

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

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