我有一个安排脚本可以直观地向上或向下移动元素(li
和tr
之类的元素)但是当元素已经是第一个时我需要让它出现在底部代替。我已使用正确的元素引用尝试appendChild
并收到错误,因为我移动的元素已经是其父级的子元素。我也尝试过使用insertBefore
而没有任何运气
没有框架。
因此,我们说我们已经获得了父元素s_parent
,我们希望移动子元素s_move
,并且tr
有四个子s_parent
个元素,我们如何在 s_move
之后移动s_parent.lastChild
?
var s_parent = document.getElementsByTagName('table')[0];
var s_move = t.getElementsByTagName('tr')[0];
答案 0 :(得分:1)
您需要:https://developer.mozilla.org/en-US/docs/Web/API/Node.appendChild
在你的情况下:
s_parent.appendChild(s_move);
来自docs:
Node.appendChild()方法将节点添加到指定父节点的子节点列表的末尾。 如果给定的子项是对文档中现有节点的引用,则appendChild()会将其从当前位置移动到新位置。
答案 1 :(得分:1)
在父节点上使用 Node.appendChild 方法:
s_parent.appendChild(s_move);
将在父节点的最后一个子节点之后添加元素。
很高兴知道:
使用vanilla JS操作DOM元素时,请注意模板系统或HTML标记中手动缩进产生的可能文本节点。
压缩标记:
<ul><li></li><li></li></ul>
ul.firstChild
首先是li
li.nextSibling
是第二个li
但是缩进标记:<ul> <li> </li> <li> </li> </ul>
ul.firstChild
是#textNode
li.nextSibling
是#textNode
检查: