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

标签 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() 的补充内容。

最佳答案

您要查找的方法/属性是 parentNode , previousSibling , nextSibling , removeChild , insertBefore , 和 insertAfter .片段可能如下所示:

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);

关于javascript - 如何在树中将元素向上/向下移动一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7587646/

相关文章:

python - networkx - 根据列表或字典值更改节点大小

javascript - 如何包含外部JS文件而不将它们包含在head标签中?

javascript - IE6和IE7下JS执行有区别吗

javascript - 嵌套 V-For 事件类

javascript - 在requestAnimationFrame中使用clearRect不显示动画

javascript - 提交由多个组件组成的表单

c - 从节点打印值

node.js - 我不明白这个类型错误

c - 在链表错误中用字符串替换字符?

xml - PL/SQL : Count number of nodes in xml