jQuery之移除元素方法

jQuery之移除元素方法

一.empty()方法

从DOM中移除集合中匹配元素的所有子节点。
示例:

<div class="container">
  <div class="hello">Hello</div>
  <div class="goodbye">Goodbye</div>
</div>

移除方法:

$('.hello').empty();

效果:

<div class="container">
   <div class="hello"></div>
   <div class="goodbye">Goodbye</div>
</div>

如果

里面包含任何数量的嵌套元素,他们也会被移走。
为了避免内存泄漏,jQuery先移除子元素的数据和事件处理函数,然后移除子元素

二.remove()方法:

描述: 将匹配元素集合从DOM中删除。(同时移除元素上的事件及 jQuery 数据。)
和 .empty()相似。.remove() 将元素移出DOM。 当我们想将元素自身移除时我们用 .remove(),同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的jQuery数据
示例:

<div class="container">
  <div class="hello">Hello</div>
  <div class="goodbye">Goodbye</div>
</div>

移除方法:

$('.hello').remove();
或者用
$('div').remove('.hello');

效果:

<div class="container">
   <div class="goodbye">Goodbye</div>
</div>

也就是说 class对应的自身的div也移除了

三.detach()方法:

从DOM中去掉所有匹配的元素
detach() 方法和.remove()一样, 除了 .detach()保存所有jQuery数据和被移走的元素相关联。当需要移走一个元素,不久又将该元素插入DOM时,这种方法很有用。

四.html(“”)方法:

html() 方法如果未设置参数,则返回被选元素的当前内容。html(“”) 则清空被选元素的当前内容。
empty() 方法从被选元素移除所有内容,包括所有文本和子节点。
两者最终实现的效果是一样的

html()返回值:String 也就是说是可以用变量接收的
empty()返回值:jQuery 不能用变量接收

另外:

empty()方法无参数,而且清空后的子集及文本无法进行还原。而detach()和remove()方法可以将其保存在一个变量中
如声明变量p 写成如下形式

var p=$('p').remove();

当需要从新添加时可以直接添加如下

p.appendTo("body");

这是detach()和remove()方法都有的功能。remove()较detach()不同的是remove()可以删除指定的类如remove(‘a’),而detach()不可这样操作,还要注意一点,当用remove()方法移除元素后,再进行添加,再子集的事件的不会存在,而detach()子集的事件还可执行。

参考文章:
https://www.cnblogs.com/lisongy/p/4109420.html
https://zhidao.baidu.com/question/208078391.html

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值