1
$(function() {
    max = 25;
    min = 1;
    var i = 0;

    do {
        var match = Math.ceil(Math.random() * (max - min )- min);

        $('td').each(function() {
            i++;
            console.log( match );   
            if (i == match) {
                $(this).addClass('active');
            }       
        })
    } while ($('td.active').length == 10);
})

私の問題は、ランダムなボックスを10個返すのではなく、1つだけ返すことです。

4

3 に答える 3

3

変化する

} while ( $('td.active').length == 10 );

} while ( $('td.active').length < 10 );

while!=until

ただし、 10 未満tdの場合は、無期限にループします。そして、i常に大きくなるにつれて、それは非常に頻繁に壊れます。

私はあなたがこれを望んでいると思います:

$(function() {
    var max = 25; // don't forget the "var", if you don't want to declare global variables
    var min = 1;
    do {
        var match = Math.ceil(Math.random() * (max - min )- min);
        $('td').eq(match).addClass('active');
     } while ($('td.active').length < 10);
})
于 2013-01-16T14:55:03.813 に答える
0

これを試してください:それらが最低10個のtdであることが確実な場合

   $(function() {
    max = 25;
    min = 1;
    var i = 0;
    var y=0;

    do {
        var match = Math.ceil(Math.random() * (max - min )- min);

        $('td').each(function() {
            i++;
            console.log( match );   
            if (i == match) {
                $(this).addClass('active');
                y++;
            }       
        })
    } while (y<10);
})
于 2013-01-16T14:57:38.043 に答える
0

コードが何をしようとしているのかについてはあまり語っていませんが、他の提案に加えて、あなたも意味していると思います

var match= Math.ceil(Math.random() * (max - min )+ min);

マイナスではなく「+ 分」に注意してください。

于 2013-01-16T14:59:28.463 に答える