没有显示10个随机框

时间:2013-01-16 14:53:24

标签: javascript jquery

$(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个随机盒子而只返回一个。

3 个答案:

答案 0 :(得分:3)

更改

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

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

while!= until

但如果你的td少于10,那么你将无限期地循环。随着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);
})

答案 1 :(得分: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);
})

答案 2 :(得分:0)

您还没有详细说明代码尝试做什么,但除了其他建议之外,我认为您还意味着

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

注意&#39; + min&#39;而不是减去。