2011-09-28 122 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

相關問題