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 个随机框,而只返回一个。

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);

注意“+ min”而不是减号。

于 2013-01-16T14:59:28.463 回答