JavaScript将节点移动到lastChild之后的位置

时间:2015-01-22 14:37:16

标签: javascript

我有一个安排脚本可以直观地向上或向下移动元素(litr之类的元素)但是当元素已经是第一个时我需要让它出现在底部代替。我已使用正确的元素引用尝试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];

2 个答案:

答案 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

检查: