0

私は ASP.NET ListBox と CheckBoxList を取得しました。次のコード スニペットで行われる onchange で、選択した項目を警告する必要がありますが、for ループを取り除きたいと考えています。助けていただけますか?

<asp:ListBox ID="ListBox1" runat="server" Width="10%" SelectionMode="Multiple">
    <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:ListBox>
<br />
<br />
<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>

JavaScript

$(document).ready
(
    function () 
    {
        $("#ListBox1").change
        (
            function () 
            {
                for (var i = 0; i < $("#ListBox1 :selected").length; i++) 
                {
                    alert("ListBox Number of Items: " + $("#ListBox1 option").length + "\n"
                    + "ListBox Number of Selected Items: " + $("#ListBox1 :selected").length + "\n"
                    + "ListBox Value: " + $("#ListBox1 :selected")[i].value + "\n"
                    + "ListBox Text: " + $("#ListBox1 :selected")[i].text);
                }
            }
        );
    }
);

$(document).ready
(
    function () 
    {
        $("#CheckBoxList1").change
        (
            function () 
            {
                for (var i = 0; i < $("#CheckBoxList1 :input").length; i++) 
                {
                    if ($("#CheckBoxList1 :input")[i].checked) 
                    {
                        alert("CheckBoxList Number of Items: " + $("#CheckBoxList1 :input").length + "\n"
                            + "CheckBoxList Number of Checked Items: " + $("#CheckBoxList1 input:checked").length + "\n"
                            + "CheckBoxList Value: " + $("#CheckBoxList1 :input")[i].value + "\n"
                            + "CheckBoxList Text: " + $("#CheckBoxList1 label")[i].innerHTML);
                    }
                }
            }
        );
    }
);

ありがとう

4

1 に答える 1

0

メソッドを使用し.each()て要素をループthisし、反復で現在の要素を参照できます。

$(document).ready
(
    function () 
    {
        $("#ListBox1").change
        (
            function () 
            {
                $("#ListBox1 :selected").each(function()
                {
                    alert("ListBox Number of Items: " + $("#ListBox1 option").length + "\n"
                    + "ListBox Number of Selected Items: " + $("#ListBox1 :selected").length + "\n"
                    + "ListBox Value: " + this.value + "\n"
                    + "ListBox Text: " + this.text);
                }
            }
        );
        $("#CheckBoxList1").change
        (
            function () 
            {
                $("#CheckBoxList1 :input").each(function()
                {
                    if (this.checked) 
                    {
                        alert("CheckBoxList Number of Items: " + $("#CheckBoxList1 :input").length + "\n"
                            + "CheckBoxList Number of Checked Items: " + $("#CheckBoxList1 input:checked").length + "\n"
                            + "CheckBoxList Value: " + this.value + "\n"
                            + "CheckBoxList Text: " + this.innerHTML);
                    }
                }
            }
        );
    }
);
于 2012-07-26T07:31:24.210 に答える