我有一个使用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";
}
}
答案 0 :(得分:0)
您的小区选择代码应该存在一些问题,因为其余的工作正常: http://jsbin.com/atukuf/1/edit
当然有可能多次选择一些细胞并且计数不会达到300个不同的细胞,但它不会少到3-4个。
答案 1 :(得分:0)
在问题中没有太多信息可以使用,但这是一个想法。 p
和q
似乎是向后的:p
基于grid_width
,但用于索引行(垂直)。同样,q
基于grid_height
,但用于索引单元格(水平)。
如果grid_width
和grid_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];