2011-08-25 56 views
27

我可以從一個位置剪切(完全具有所有樣式和屬性)元素並將其粘貼到另一個位置(如body)與jQuery?完全剪切並粘貼一個元素

此外,我想在舊位置放置一個字符串(或標籤),因爲我想在腳本末尾將其位置更改爲舊位置。

我可以嗎? 如何?

謝謝。

+0

我從來沒有聽說過這樣的事,但也許創建一個複製命令的事件處理程序,(大量的對谷歌的例子,則只是刪除了內部HTML,你必須先保存在某個地方內的HTML代碼,在粘貼之前,也許在xml或其他方法中,可能只有在已經選擇了粘貼的情況下才可以剪切該對象,然後您可以在一個函數中完成所有操作,不要以爲它不可能想到如何檢測複製和粘貼事件http://www.mkyong.com/jquery/how-to-detect-copy-paste-and-cut-behavior-with-jquery/ –

+0

注意:優雅的解決方案交換2鄰居項目:http://stackoverflow.com/a/8638127/669677 – 2014-05-09 12:46:02

回答

33

appendTo()會自動將匹配元素從第eir當前位置到指定的容器,這似乎是你想要的。

您可以使用after()移動元素之前插入新內容:

$("#yourElement").after("<p>Element was there</p>").appendTo("body"); 
+0

+1,但是如果通過'.someContainer #yourElement {color:blue; }「從容器中取出將會」毀掉「這種風格。所以它可能更復雜。 –

+0

謝謝。我正在使用'appendTo()',但我不知道它會移動元素。 – mrdaliri

+0

暗影嚮導說對了,有jQuery的這個功能嗎? – mrdaliri

7

您可以通過克隆 第一個拷貝它這樣做是爲了另一個位置

$('#yourElement').clone().appendTo('#anotherDiv'); 

然後刪除舊的,

$('#parentOfOldElement #yourElement').remove(); 

,或者你可以取代它得到它以後

$('#parentOfOldElement #yourElement').replaceWith('<div id="toReplaceAgain">/div>'); 
+0

謝謝。我是jQuery的新手,並沒有聽說過'remove()' – mrdaliri

+7

'.detach()'可以用來代替clone()'和remove()' –

10

.detach()是更適合這個任務,因爲@lvan建議。

jQuery(jQuery("#yourElement").detach()).appendTo("body");