天天看點

JQuery删除元素

detach:從DOM中删除比對的元素集。可以選擇性的接受一個選擇器表達式來過濾元素集中的元素。此方法傳回與被删除元素關聯的jQuery資料。eg:删除id為test的p元素可以寫成$("p").detach("#test")或者$("p#test").detach()。

remove:從DOM中删除比對的元素集。可以選擇性的接受一個選擇器表達式來過濾元素集中的元素。除了元素本身,元素的子元素與元素關聯的所有綁定事件和jQuery資料都将被删除。eg:删除id為test的p元素可以寫成$("p").remove("#test")或者$("p#test").remove()。

empty:從DOM中删除比對的元素集的所有子節點以及包括元素集中元素的文本,因為根據DOM規範,元素中的任何文本字元串都被視為該元素的子節點。為了記憶體洩漏,JQuery在删除子元素之前先從子元素中删除資料和事件處理程式等結構。empty不接受任何參數。eg:删除p元素的所有子元素,$("p").empty()。

unwrap:與wrap相反,unwrap從DOM中删除比對元素集的父元素,将比對的元素保留在它們的位置。從JQuery3.0起,unwrap可以選擇性的接受一個選擇器表達式,用于過濾父元素,比對的父元素将被删除。eg:删除父元素為div元素的p元素的父元素,$("p").unwrap("div")。

差別:

detach:保留了所有與被删除元素關聯的jQuery資料,常用于需要将删除的元素重新插入DOM的場景。

remove:除了元素本身,與元素關聯的所有綁定事件和jQuery資料都将被删除。

empty:删除元素的所有子元素及元素包含的文本,子元素的資料和事件處理程式等結構也會被删除。

unwrap:删除元素的父元素。