如何在树中向上/向下移动元素一个位置

时间:2011-09-28 18:18:18

标签: javascript nodes

我似乎无法找到JavaScript的基本功能。我想通过单击按钮将元素向上移动一个位置或向下移动一个位置。 jQuery和其他专有库不是一种选择。

function moveDown()
{
if(document.getElementById('CMSeditingNode'))
{
var node = document.getElementById('CMSeditingNode'),
parent = node.parentNode,
nextNode = node.nextSibling,
secondNode = nextNode.nextSibling,
oldChild = parent.removeChild(node);
parent.insertBefore( oldChild, secondNode ); }

答案很有效,我在这篇文章中添加了insertAfter()的补充。

1 个答案:

答案 0 :(得分:16)

您要查找的方法/属性包括parentNodepreviousSiblingnextSiblingremoveChildinsertBeforeinsertAfter。一个片段可能看起来像:

var node = document.getElementById('somenode'),
    parent = node.parentNode,
    prev = node.previousSibling,
    oldChild = parent.removeChild(node);
parent.insertBefore( oldChild, prev );

为了比较,这个(完整的)jQuery将是:

var $node = $('#somenode'),
            $node.prev().before($node);