我有以下函数将行和单元格附加到空table
:
function createTable(size) {
var table = document.getElementById("gameTable");
for (var i=0; i<size; i++) {
var tr = document.createElement("tr");
for (var j=0; j<size; j++) {
var td = document.createElement("td");
tr.appendChild(td);
}
table.appendChild(tr);
tr.rowIndex = i;
}
}
到目前为止一切顺利。
我的问题是,稍后,当我试图到达表格内的特定单元格时:
var x = target.parentNode.rowIndex;
var y = target.cellIndex;
table.rows[x].cells[y].innerHTML = 'blah'
target
是点击的具体TD
。
rows[x]
索引始终为-1
。每当我尝试上面的这一行时,我都会收到一个错误:“无法读取未定义的属性'单元'”
我甚至尝试手动将每行的rowIndex设置为它应该是什么(在函数内部),但是无济于事。
cellIndex很好,但是rowIndex是-1以及每个新创建的表行。
我该怎么做才能纠正这个问题?
答案 0 :(得分:0)
这可以通过将<tr>
元素附加到<tbody>
。
function createTable(size) {
var table = document.getElementById("gameTable");
var tb = document.createElement("tbody");
for (var i=0; i<size; i++) {
var tr = document.createElement("tr");
for (var j=0; j<size; j++) {
var td = document.createElement("td");
tr.appendChild(td);
}
tb.appendChild(tr);
}
table.appendChild(tb);
}