Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据循环变量的值为特定HTML表块着色时出现问题_Javascript_Css - Fatal编程技术网

Javascript 根据循环变量的值为特定HTML表块着色时出现问题

Javascript 根据循环变量的值为特定HTML表块着色时出现问题,javascript,css,Javascript,Css,/*注意矩阵的列是俄罗斯方块的行,反之亦然, 所以在这个矩阵中从左到右-->和从上到下是一样的 在实际的俄罗斯方块板中垫底*/ 变量a=[ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0

/*注意矩阵的列是俄罗斯方块的行,反之亦然,
所以在这个矩阵中从左到右-->和从上到下是一样的
在实际的俄罗斯方块板中垫底*/
变量a=[
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
];
//生成给定范围之间的随机整数
函数getRandomInteger(最小值、最大值){
返回Math.round(Math.random()*(max-min))+min;
}
函数getColor(){
//一系列的红色、蓝色、绿色、黄色、橙色、紫色和鲑鱼色
var colorArray=[“#C0392B”、“#2980B9”、“#27AE60”、“#F1C40F”、“#E67E22”、“#8E44AD”、“#FFA07A”]
返回colorArray[getRandomInteger(0,7)];
}
//在顶部创建一组随机块
函数createBlocks(){
var i=getRandomInteger(0,9);
blockHeight=getRandomInteger(2,4);
var blockColor=getColor();

对于(var j=0;j现在,在每次迭代中,您将向传递给类型
n的编号添加10:

nthBoxToColor = i + 10 * j + 1;
因此,在第一次迭代中,如果选择器是

td:nth-of-type(9)
然后在第二次迭代中,选择器将

td:nth-of-type(19)
但是在一个TR中只有10个TDs,因此选择器失败

虽然您可以先选择第一个TR,然后对其调用
querySelector
,以获得正确的TD:

  for (var j = 0; j < blockHeight; j++) {
    a[i][j] = 1;
    nthBoxToColor = i + 1;
    const tr = document.querySelector(`tr:nth-child(${j + 1})`);
    tr.querySelector(`td:nth-of-type(${nthBoxToColor})`).style.backgroundColor = blockColor;
  }
然后,在循环内部:

tbody.children[j].children[i].style.backgroundColor = blockColor;
/*注意矩阵的列是俄罗斯方块的行,反之亦然,
所以在这个矩阵中从左到右-->和从上到下是一样的
在实际的俄罗斯方块板中垫底*/
变量a=[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
];
//生成给定范围之间的随机整数
函数getRandomInteger(最小值、最大值){
返回Math.round(Math.random()*(max-min))+min;
}
函数getColor(){
//一系列的红色、蓝色、绿色、黄色、橙色、紫色和鲑鱼色
var colorArray=[“#C0392B”、“#2980B9”、“#27AE60”、“#F1C40F”、“#E67E22”、“#8E44AD”、“#FFA07A”]
返回colorArray[getRandomInteger(0,7)];
}
//在顶部创建一组随机块
函数createBlocks(){
var i=getRandomInteger(0,9);
blockHeight=getRandomInteger(2,4);
var blockColor=getColor();
const tbody=document.querySelector('.table>tbody');
对于(var j=0;j
gameContainer{
左边距:10vw;
宽度:80vw;
背景颜色:蓝色;
}
俄罗斯方块委员会{
左边距:30vw;
宽度:20vw;
}
运输署{
高度:2vw;
}

tbody.children[j].children[i].style.backgroundColor = blockColor;