我正在尝试使用JavaScript单击按钮来移动表格行。下面的代码没有改变行。还会显示insertBefore
语句后的警告语句。
function MoveUp(x) {
var RowLocation = x.id;
var table = dojo.byId('dynamicTable');
var rows = table.rows;
if ((RowLocation > 0) && (RowLocation < (rows.length - 1))) {
alert('inside if..'+ RowLocation);
rows.insertBefore(rows[RowLocation],rows[RowLocation-1]);
alert('after shift..');
}
}
任何人都可以帮忙找出错误吗?
答案 0 :(得分:1)
您应该在新插入的节点的父节点上调用insertBefore
(而不是table.rows
):
var parentNode = rows[RowLocation].parentNode;
parentNode.insertBefore(rows[RowLocation], rows[RowLocation - 1]);
var insertedElement = parentElement.insertBefore(newElement, referenceElement);
使用以下内容向下移动一行:
var parentNode = rows[RowLocation].parentNode;
parentNode.insertBefore(rows[RowLocation], rows[RowLocation + 1].nextSibling)