2
<body>
    <div id="div1">1</div>
    <div id="div2">2</div>
    <div id="div3">3</div>
    <script>
    $(document).ready(function(){
        var boxNumber=1;
        while(boxNumber<=3){
            $('#div'+boxNumber).click(function(){
                alert(boxNumber);
            });
            boxNumber++;
        }
    });
    </script>
</body>

コードをクリックするとボックス番号が警告されると思っていましたが、代わりに番号 4 が警告されました。どうすれば修正できますか?ありがとう

4

3 に答える 3

1

ページが読み込まれるとすぐに boxNumber を 4 に増やしています - これは意図的なものでしたか? 明確にするために、この jsFiddleを参照してください。

$(document).ready(function () {
    var boxNumber = 1;
    while (boxNumber <= 3) {
        $('#div' + boxNumber).click(function () {
            alert($(this).text());
        });
        boxNumber++;
        alert(boxNumber);
    }
    alert(boxNumber);
});
于 2013-08-24T19:17:19.677 に答える
1

の実際の値ではなく、カウンターの現在の値を警告しています<div>

これはあなたが期待するように動作します:

<body>
    <div id="div1">1</div>
    <div id="div2">2</div>
    <div id="div3">3</div>
    <script>
    $(document).ready(function(){
        var boxNumber=1;
        while(boxNumber<=3){
            $('#div'+boxNumber).click(function(){
                alert($(this).text());
            });
            boxNumber++;
        }
    });
    </script>
</body>

JSFiddle

于 2013-08-24T18:47:53.463 に答える
0

@johnの回答に従って、これも簡単に実行できます

 var boxNumber=1;
    while(boxNumber<=3){

function addClick(num) {    
    $("#div" + boxNumber).click (
        function() { alert (num) }
    )
}
addClick(boxNumber);
boxNumber++;
}
于 2013-08-24T19:13:40.050 に答える