2013-08-26 53 views

回答

0

你只是忘了在##new-html

$('ul').find('.bye').remove().appendTo('#new-html'); 

此外,附加的元素自動從它那裏刪除它,所以沒有必要將其刪除

$('ul').find('.bye').appendTo('#new-html'); 
+0

謝謝,對我而言愚蠢的錯誤。這實際上是我所需要的:'$('ul')。find('。bye')。remove()。end()。appendTo('#new-html');'我想要非移除部分在新的分區。 – TK123

0

你可以這樣說:

$('ul').find('.bye').appendTo('#new-html'); 

沒有必要刪除元素第一。並通過id在選擇器中使用#

另請注意,將<li>元素附加到<div>將導致無效的HTML。

演示

Try before buy

0

你的代碼幾乎是正確的,但你要使用正確的CSS選擇new-html#new-html。但是,您還應該使用jQuery的detach(),因爲它將保留與該元素關聯的所有數據。所以,使用此:

$('ul').find('.bye').detach().appendTo('new-html');

和小提琴: http://jsfiddle.net/QtaDg/1/

+0

移動節點時保持處理程序是危險的做法,因爲處理程序通常對節點的位置敏感。不要盲目做,因此,不要在任何時候移動節點時提供建議。 –

+0

我不一定同意你的觀點,如果我正在移動一個節點,我希望它能夠隨着它一起獲取任何綁定的信息。我會做更多的事情,試圖找出爲什麼我添加了兩行以上的數據不再附加到元素上,而不是處理器錯誤地遍歷DOM。 –

+0

實際上,我不確定'detach'是什麼,它似乎不需要保持處理程序,或保留'$ .data()'值。 http://jsfiddle.net/QtaDg/4/ –

相關問題