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 に答える