Javascript 将表单元格内容存储到js数组中

Javascript 将表单元格内容存储到js数组中,javascript,Javascript,我需要使用tr和td索引将表单元格内容存储到数组中,如下所示: myArray[tr_idx][td_idx]='value'; 不需要存储数组中所有单元格的数据,只需要存储几个具有特殊内容的单元格,但如果使用索引作为数组的键,则会有许多空数组元素 e、 g 也许还有另一种合适的方式来存储此类数据?为什么不将它们存储为单独的两项数组[row,col]?由于已经可以通过tableElement.rows[].cells[]访问表单元格,因此可以使用这两个索引从表中访问它们 var storedC

我需要使用tr和td索引将表单元格内容存储到数组中,如下所示:

myArray[tr_idx][td_idx]='value';
不需要存储数组中所有单元格的数据,只需要存储几个具有特殊内容的单元格,但如果使用索引作为数组的键,则会有许多空数组元素

e、 g


也许还有另一种合适的方式来存储此类数据?

为什么不将它们存储为单独的两项数组
[row,col]
?由于已经可以通过
tableElement.rows[].cells[]
访问表单元格,因此可以使用这两个索引从表中访问它们

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]);
评论后更新: 如果您需要能够从后端将单元格坐标附加到新值,一个好的解决方案是扩展上面的对象
{}
示例,以包含
属性。服务器可以以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;

不确定这是否是正确答案,但在将单元格推入数组之前,可以尝试检查单元格是否为空。在循环中放置一个if语句,该语句将检查单元格的值并将其与所需的值进行比较。这样,您应该只得到一个值数组,而没有空值。但是您可能还需要记录索引。

使用对象以避免空元素。。您将没有length属性,但它将毫无用处,因为某些项将为空。myObject={}Michael,谢谢你这么详细的回复。实际上,单元格数据用作传递到后端脚本的变量。所以当js从后端接收到响应时,脚本单元应该填充新数据。这就是为什么细胞位置和细胞数据很重要。我不知道如何使用单个2项数组来实现此目的?@user947668请参见上面的添加。绝对精彩!非常感谢你!
storedCells.push({row: 2, column: 3, value: ""});
storedCells.push({row: 4, column: 6, 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;