为什么这不起作用?
var row = document.getElementById(currentRow);
var otherRow = document.getElementById(targetRow);
row.cells[0] = otherRow.cells[0];
这适用于
row.cells[0].innerHTML = otherRow.cells[0].innerHTML;
但是,有一些属性附加到单元格,我也想要移动而无需手动重新创建它们。
解决方案(注意:在我的实际实现中已经完成了更多工作,但这是框架):
for (var i = 0; i < 4; i++) {
var copyTo = row.cells[i];
var copyFrom = otherRow.cells[i].cloneNode(true);
copyTo.parentNode.replaceChild(copyFrom, copyTo);
}
答案 0 :(得分:2)
您应该能够使用cloneNode()
来实际克隆节点及其属性。
答案 1 :(得分:2)
cells
中的每个条目都指向DOMElement。当您输入row.cells[0] = otherRow.cells[0]
时,您表示希望row.cell[0]
引用与otherRow.cells[0]
相同的DOMElement。
我猜你希望row.cells[0]
拥有与otherRow.cells[0];
相同的文字或HTML,在这种情况下,第二个代码片段会做到这一点,因为你实际上正在修改DOMElement,而不是只是改变你引用的DOMElement。