2014-01-16 117 views
0

基于Jquery文档.remove将删除父标记中的元素和嵌套的html元素。Jquery Remove不会完全删除元素

使用jQuery例如

<div class="container"> 
<div class="hello">Hello</div> 
<div class="goodbye">Goodbye</div> 
</div> 

$(".hello").remove(); 

会给

<div class="container"> 
<div class="goodbye">Goodbye</div> 
</div> 

不过,我也许这样做不正确的,但我需要使用jQuery移动元素。

如果我执行以下操作:

<div class="container"> 
<div class="hello">Hello</div> 
<div class="goodbye">Goodbye</div> 
<textarea></textarea> 
</div> 
<div class="test"></div> 

var container = $(".container")[0].outerHTML; 
$(".container").remove(); 
$(".test").append(container); 

这将使容器的副本包括父元素,取出的html元素然后追加。测试用的数据。如果我再尝试这样的textarea的后面添加一个元素:

$("textarea").after("<p>abc123</p>"); 

代替将段落被留下它,它适用于在原textarea的应该是,也为新的textarea textarea的的。

有谁知道这是由于我这样做的方式还是有办法解决?

预先感谢您的时间。

+0

我不遵守你正在尝试去。 –

+0

_“不是将段落应用到剩余的textarea,而是将其应用于原始文本区域以及新textarea的位置。”_不适合我:http://jsfiddle.net/j08691/FBC2A/ – j08691

+0

@KellyJAndrews基本上我们使用的模板系统不允许我们分离组件。所以我不得不使用jquery删除它们,然后将其他位置的div放在 –

回答

3

append()移动元素,你不必remove()它在所有

$(".test").append($(".container")); 
+0

你的权利追加将复制.container但是我需要移动.container并将其从它的原始位置删除。对不起,我没那么清楚 –

+0

@LiamSorsby - 这正是append在现有元素上调用时所做的事情,它不会创建另一个元素,它只是移动你已有的元素,而不必删除任何东西。 – adeneo

+0

我不知道我尝试了什么,但那实际上工作对不起,我会尝试这看看会发生什么 –