2013年3月26日 星期二

jQuery - detach() 與 remove() 之差異

在 jQuery 官網的 DOM 操作文件中,有提到 detach()remove() 兩種方法,這兩種方法的說明都是:
Remove the set of matched elements from the DOM.
意思就是將元素從 DOM 中移除,不過進一步閱讀詳細的使用說明時, 就會發現兩者其實是不太相同的。

最大的差異在於,detach() 除了將元素移除之外,會將 jQuery 中所有與該元素有關的資料屬性保存著,也因此後續可以將被移除的元素回復。
The .detach() method is the same as .remove(), except that .detach() keeps all jQuery data associated with the removed elements. This method is useful when removed elements are to be reinserted into the DOM at a later time.
例如:把所有的段落標籤<p>...</p>從 DOM 移除後,再添加回 DOM 。
p = $("p").detach();
...(略)
...(略)
p.appendTo("body");

參考資料:
http://api.jquery.com/detach/

沒有留言: