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:删除元素的父元素。

 

你可能感兴趣的:(JavaScript,JQuery)