0

ここに私のコードがあります:

$('#CheckBoxList1').change(function () {
                var CHK = document.getElementById("<%=CheckBoxList1.ClientID%>");
                var checkbox = CHK.getElementsByTagName("input");
                if ($.browser.msie) {
                    for (var i = 1; i < checkbox.length; i++) {
                        if (checkbox[i].checked) {
                            markers[i - 1].setIcon('http://maps.google.com/mapfiles/ms/icons/green-dot.png');
                        }
                        else {
                            markers[i - 1].setIcon('http://maps.google.com/mapfiles/ms/icons/red-dot.png');
                        }

                    }
                }
          });

        });

for ループでは、checkboxlist1 からチェックされたチェックボックスを見つけています。名前が checkboxlist.İt でチェックされているマーカーの色を設定しています。しかし、チェックボックスをチェックしたときにこのプロセスを作成します。チェックボックスをすべて見つけるためにforループを使用しません。したがって、チェックボックスリストでチェックボックスをチェックすると、チェックボックスのインデックス(シーケンス番号)番号を取得します.そのインデックス番号を取得すると、for ループを使用する必要がなくなり、そのインデックス番号を使用してマーカーを操作できます。İ.EI にはチェックボックス リストがあります。つまり、テックスが a、b、c、d、e の 5 つのチェックボックスがあります。例: 「e」チェックボックスをチェックすると、チェックボックスのインデックス番号が 5 になり、「c」チェックボックスをチェックすると、チェックボックスのインデックス番号が 3 になります。

4

1 に答える 1

1

index() 関数を使用するだけです。また、一部の IE ブラウザーは .change() イベントを認識せず、ここに示すように .propertychange を使用する場合があることに注意してください。

また、document.getElementById を使用して要素を選択しているときに jQuery を使用する意味は何ですか?

$(function() {
    $('#CheckBoxList1 input').change(function() {
        var index = $('#CheckBoxList1 input').index(this);
    });
});
于 2013-02-25T10:37:13.450 に答える