我设法解决了仅使用 JavaScript 使用 DOM 遍历表行时遇到的一些问题,但遇到了 2 个障碍。我正在尝试创建一个表格,其中每一行都有一组按钮来向上、向下或删除该特定行。我能够成功使用 .replaceChild 方法,但它替换了行而不是仅仅交换它们。当我尝试 .moveRow 时,我不断收到错误消息,提示 HTML 表格部分没有该方法。尝试将当前行与下面的行交换时遇到了同样的问题。有什么建议么?
function up(x){
// var tableBody = document.getElementsByTagName("tbody")[0]; // tried it with tableBody and it still didn't work
var table = x.parentNode.parentNode.parentNode;
var tableRow = x.parentNode.parentNode.cloneNode(true);
var previousRow = x.parentNode.parentNode.previousSibling.cloneNode(true);
table.replaceChild(tableRow,x.parentNode.parentNode.previousSibling);
}
function down(x){
var table = x.parentNode.parentNode.parentNode;
var tableRow = x.parentNote.parentNode.cloneNode(true);
var belowRow = x.parentNode.parentNode.nextSibling.cloneNode(true);
table.moveRow(tableRow,x.parentNode.parentNode.nextSibling);
}
我的按钮:
<table id="table1" border="1">
<tbody>
<tr>
<th>Column 1</th> <th>Column 2</th> <th>Column 3</th> <th>Column 4</th>
</tr>
<tr id="enterData">
<td id="buttons">
<input type="button" value="Up" onclick="up(this)" />
<input type="button" value="Down" onclick="down(this)" />
</td>
</tr>
</tbody>
</table>