循环以在表中生成无法正常工作的随机单元格

时间:2013-06-28 04:49:14

标签: javascript html

我有一个使用table标签在HTML中创建的表。我试图使用javascript中的函数从该表中随机选择几个单元格。我使用for循环进行迭代。请参阅下面的代码。在这段代码中,我的for循环限制是300,所以我希望随机选择任何300个单元格。但是,只有3-4人被选中。有什么想法吗?

这是我的代码:

function random_Pattern() {
    var p;
    var q;
    for (var r = 0; r < 301; r++) {
        p = Math.floor(Math.random() * grid_width)+1;
        q = Math.floor(Math.random() * grid_height)+1;
        var cell = document.getElementById("myTableID").rows[p].cells[q];
        cell.style.backgroundColor = "red";

    }

}

2 个答案:

答案 0 :(得分:0)

您的小区选择代码应该存在一些问题,因为其余的工作正常: http://jsbin.com/atukuf/1/edit

当然有可能多次选择一些细胞并且计数不会达到300个不同的细胞,但它不会少到3-4个。

答案 1 :(得分:0)

在问题中没有太多信息可以使用,但这是一个想法。 pq似乎是向后的:p基于grid_width,但用于索引行(垂直)。同样,q基于grid_height,但用于索引单元格(水平)。

如果grid_widthgrid_height非常不同,这可能会导致您只选择一小部分单元格。

我认为你应该:

p = Math.floor(Math.random() * grid_height)+1;
q = Math.floor(Math.random() * grid_width)+1;
var cell = document.getElementById("myTableID").rows[p].cells[q];