2014-01-16 150 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

我不知道我嘗試了什麼,但那實際上工作對不起,我會嘗試這看看會發生什麼 –