我正在使用clone通过如下所述的按钮点击事件动态地向DOM表添加新行。但我想将克隆节点附加到DOM表中的特定行位置。我知道我可以通过使用“insertrow”选项来做到这一点,但我想使用克隆。
var newNode = tblBody.rows[1].cloneNode(true);
tblBody.appendChild(newNode);
有没有办法在我动态选择的位置插入或追加“newNode”,而不是将其作为最后一行添加。
答案 0 :(得分:4)
使用.insertBefore()
中的tblBody
,并将newNode
作为第一个参数传递,并将tblBody
的子项作为第二个参数传递到该子节点之前。
// put this node----v before this----v
tblBody.insertBefore(newNode, tblBody.rows[i]);
如果tblBody.rows[i]
为null
或undefined
,那么.insertBefore()
的行为就像.appendChild()
,并将其放在最后。
答案 1 :(得分:0)
node.insertBefore()正是您要找的:https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore