为什么不将它们存储为单独的 2 项数组[row,col]
?由于表格单元格已经可以通过 访问tableElement.rows[].cells[]
,因此您可以使用 2 个索引从表格中访问它们。
var storedCells = [];
// Store row 2, column 3
storedCells.push([2,3]);
访问:
// Table row:
storedCells[0][0]
// Table column
storedCells[0][1]
//As in :
tableElement.rows[storedCells[0][0]].cells[storedCells[0][1]].innerHTML = "New cell value!"
甚至更简洁,如果您更喜欢使用对象而不是数组:
storedCells.push({row: 2, column: 3});
storedCells.push({row: 4, column: 6});
访问:
tableElement.rows[storedCells[0].row].cells[storedCells[0].column].innerHTML = "New cell value!";
最后,如果您实际上不需要行/列索引,而是需要 DOM 节点本身,只需将它们推送到您的数组中。
var storedCells = [];
// Save references to some individual <td> nodes
storedCells.push(tableElement.rows[1].cells[2]);
storedCells.push(tableElement.rows[4].cells[6]);
然后对它们进行简单的修改:
// Set the value of the second element:
storedCells[1].innerHTML = "New content!";
评论后更新:
如果您需要能够将单元格坐标附加到后端的新值,一个好的解决方案是扩展{}
上面的对象示例以包含一个value
属性。服务器可以传回 JSON 中的新值。
storedCells.push({row: 2, column: 3, value: ""});
storedCells.push({row: 4, column: 6, value: ""});
您的后端应该将 JSON 响应发送回脚本,其中包含相同类型的对象数组,其中value:
已填充了新的单元格值。然后,您可以将其传递回表中:
// Pass the value attribute received from JSON into the cell's contents
tableElement.rows[storedCells[0].row].cells[storedCells[0].column].innerHTML = storedCells[0].value;