Jquery里面有三种常用的文档操作方法去控制一个标签内容在DOM里面消失,分别是empty(),detach()和remove()。对于每个方法运用后的表面效果是一样的,但是实际上的每个方法对DOM操作以后产生的影响各不相同。下面小编结合实例对三个方法一一说明。为了配合说明,下面是整个操作对象-DOM文件

jquery empty没起作用 jquery中empty方法_jquery empty没起作用

jquery empty没起作用 jquery中empty方法_数据_02

一、empty(),detach()和remove()用法介绍

1、empty()      

     empty()是一种删除标签内容方式,但是保留标签,w3School上面的解释如下:


定义和用法

empty() 方法从被选元素移除所有内容,包括所有文本和子节点。

语法

$(selector).empty()

2、detach()

detach()方法,不仅删除标签的内容,也删除了DOM中标签本身,但是其绑定的事件,数据等仍然保留在DOM中,你可以在删除其内容后继续进行对象操作。


定义和用法

detach() 方法移除被选元素,包括所有文本和子节点。

这个方法会保留 jQuery 对象中的匹配的元素,因而可以在将来再使用这些匹配的元素。

detach() 会保留所有绑定的事件、附加的数据,这一点与 remove() 不同。

语法

$(selector).detach()

3、remove()

remove()方法,不仅删除标签的内容,也删除了DOM中标签本身,同样其绑定的事件,数据等都被删除。

定义和用法

remove() 方法移除被选元素,包括所有文本和子节点。

该方法不会把匹配的元素从 jQuery 对象中删除,因而可以在将来再使用这些匹配的元素。

但除了这个元素本身得以保留之外,remove() 不会保留元素的 jQuery 数据。其他的比如绑定的事件、附加的数据等都会被移除。这一点与 detach() 不同。

语法

$(selector).remove()

二、实例比较

1、删除效果比较

(1)empty():

jquery empty没起作用 jquery中empty方法_子节点_03

点击按钮之后效果自然不用说了,h2被移动到在第一个p(内容已被删除,所以h2上面没有内容)和第二个p之后

jquery empty没起作用 jquery中empty方法_子节点_04

(2)detach()和remove()对于删除效果是一样的:

jquery empty没起作用 jquery中empty方法_jquery empty没起作用_05

点击按钮后,效果就是将h2只移动到第二个P(this....)后面,第一个p已经完全不存在DOM中了。

jquery empty没起作用 jquery中empty方法_子节点_06

2、remove()和detach()对其绑定的事件和数据影响的比较

对h2标签添加字体变大效果,观察其被移出后,事件是否还被绑定

(1)remove()

jquery empty没起作用 jquery中empty方法_数据_07

jquery empty没起作用 jquery中empty方法_子节点_08

明显在h2上单击仍然可以实现放大字体的效果。下面看remove()方法的效果:

jquery empty没起作用 jquery中empty方法_jQuery_09

jquery empty没起作用 jquery中empty方法_jQuery_10

单击h2以后并不能实现字体放大效果