2011-09-28 71 views
3

我似乎无法找到应该是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

我已经根据我的问题在这里搜索了几个差异。我尝试了使用contenteditable>通过ID获取>用outerHTML创建新的,然后删除旧的div。正如你在描述中看到的那样,这是相当复杂的。什么标记? HTML – Richard

回答

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

非常感谢您的回复。我将开始与此合作。 – Richard

+0

完美!!!!!!!! – Richard