我似乎无法解决这个问题。我的代码如下:
var matrix = [];
// initialise the grid:
window.onload = function(){
var cells ='';
for(var i = 0; i < 10; i++){
matrix[i] = [];
for (var j = 0; j < 10; j++){
matrix[i][j] = "white";
cells += "<span class = 'cell' id='cell"+ i + "" + j + "' onClick = 'toggleCell("+i+","+j+")' ></span>";
}
}
$('#grid-container').html(cells);
}
当我尝试在其他方法中调用矩阵元素时,我得到了解开。
解决
答案 0 :(得分:1)
不是矩阵是未定义的,而是矩阵[i]。由于您是从jQuery的属性方法中获取i和j值,因此它们是字符串;因此,在将它们用作数组的索引之前,必须先将它们转换为int:
var i = parseInt($(this).attr('id').slice(-2, -1), 10);
var j = parseInt($(this).attr('id').slice(-1), 10);
另请注意,我将第二个参数传递给第一个切片调用,因为您只需要第一个字符。
答案 1 :(得分:0)
matrix
是一个长度为9的数组,但你的for循环次数是10次(i < 10
)。将你的循环改为:
for( var i = 0; i < matrix.length; i++) {
}
答案 2 :(得分:0)