2011-08-25 60 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");