前言

相信大家都知道,要移除页面上节点是开发者常见的操作,jQuery提供了几种不同的方法用来处理这个问题。下面本文就进行一个详细的介绍,感兴趣的朋友们一起来看看吧。
一、empty
empty 顾名思义,清空方法,但是与删除又有点不一样,因为它只移除了 指定元素中的所有子节点。
这个方法不仅移除子元素(和其他后代元素),同样移除元素里的文本。因为,根据说明,元素里任何文本字符串都被看做是该元素的子节点。如果我们通过empty方法移除里面div的所有元素,它只是清空内部的html代码,但是标记仍然留在DOM中,通过empty移除了当前div元素下的所有p元素 但是本身id=test的div元素没有被删除。
$("button").on('click', function() {
//通过empty移除了当前div元素下的所有p元素
//但是本身id=test的div元素没有被删除
$("#test").empty()
})
二、remove
remove与empty一样,都是移除元素的方法,但是remove会将元素自身移除,同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的jQuery数据。
例如一段节点,绑定点击事件,如果不通过remove方法删除这个节点其实也很简单,但是同时需要把事件给销毁掉,这里是为了防止"内存泄漏",所以前端开发者一定要注意,绑了多少事件,不用的时候一定要记得销毁。通过remove方法移除div及其内部所有元素,remove内部会自动操作事件销毁方法,所以使用使用起来非常简单
remove表达式参数:
remove比empty好用的地方就是可以传递一个选择器表达式用来过滤将被移除的匹配元素集合,可以选择性的删除指定的节点,我们可以通过$()选择一组相同的元素,然后通过remove()传递筛选的规则,如:$("p").filter(":contains('3')").remove()。
<body>
<style>
.test1 {
background: #bbffaa;
}
.test2 {
background: yellow;
}
</style>
<h2>通过jQuery remove方法移除元素</h2>
<div class="test1">
<p>p元素1</p>
<p>p元素2</p>
</div>
<div class="test2">
<p>p元素3</p>
<p>p元素4</p>
</div>
<button>点击通过jQuery的empty移除元素</button>
<button>点击通过jQuery的empty移除指定元素</button>
<script type="text/javascript">
$("button:first").on('click', function() {
//删除整个 class=test1的div节点
$(".test1").remove()
})
$("button:last").on('click', function() {
//找到所有p元素中,包含了3的元素
//这个也是一个过滤器的处理
$("p").remove(":contains('3')")
})
</script>
</body>
empty和remove区别
用到移除指定元素的时候,jQuery提供了empty()与remove([expr])二个方法,两个都是删除元素,但是两者还是有区别
empty方法
empty()方法并不是删除节点,而是清空节点,它能清空元素中的所有后代节点remove方法
三、detach
如果我们希望临时删除页面上的节点,但是又不希望节点上的数据与事件丢失,并且能在下一个时间段让这个删除的节点显示到页面,这时候就可以使用detach方法来处理detach从字面上就很容易理解。让一个web元素托管。即从当前页面中移除该元素,但保留这个元素的内存模型对象。
官方解释:这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。 $("div").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。
当然这里要特别注意,detach方法是JQuery特有的,所以它只能处理通过JQuery的方法绑定的事件或者数据
通过 $("p").detach()把所有的P元素元素删除后,在通过append把删除的p放到页面上,可以通过点击文字测试,事件没有丢失
<body>
<p>P元素1,默认给绑定一个点击事件</p>
<p>P元素2,默认给绑定一个点击事件</p>
<button id="bt1">点击删除 p 元素</button>
<button id="bt2">点击移动 p 元素</button>
<script type="text/javascript">
$('p').click(function(e) {
alert(e.target.innerHTML)
})
var p;
$("#bt1").click(function() {
if (!$("p").length) return; //去重
//通过detach方法删除元素
//只是页面不可见,但是这个节点还是保存在内存中
//数据与事件都不会丢失
p = $("p").detach()
});
$("#bt2").click(function() {
//把p元素在添加到页面中
//事件还是存在
$("body").append(p);
});
</script>
</body>
detach()和remove()区别
JQuery是一个很大强的工具库,在工作中开发中,可是有些方法还是因为不常用到,或是没有注意到而被我们而忽略。remove()和detach()可能就是其中的一个,可能remove()我们用得比较多,而detach()就可能会很少了
通过一张对比表来解释2个方法之间的不同
| 方法名 | 参数 | 事件及数据是否也被移除 | 元素自身是否被移除 |
| remove | 支持选择器表达 | 是 | 是(无参数时),有参数时要根据参数所涉及的范围 |
| detach | 参数同remove | 否 | 情况同remove |
remove:移除节点
detach:移除节点
remove()不同的是,所有绑定的事件、附加的数据等都会保留下来$("p").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# jquery删除dom节点
# jquery
# dom节点
# 删除dom节点
# JQuery创建DOM节点的方法
# JS/jQuery判断DOM节点是否存在的简单方法
# JQuery插入DOM节点的方法
# JQuery遍历DOM节点的方法
# JQuery查找DOM节点的方法
# js和jquery对dom节点的操作(创建/追加)
# JQuery替换DOM节点的方法
# JQuery包裹DOM节点的方法
# JQuery复制DOM节点的方法
# jquery对dom节点的操作【推荐】
# JQuery中DOM节点的操作与访问方法实例分析
# 移除
# 绑定
# 清空
# 的是
# 都是
# 这一
# 当你
# 仅仅是
# 就又
# 与该
# 显示效果
# 是一个
# 没有了
# 文档
# 出来了
# 选择器
# 也会
# 是有
# 大家都
# 又有
相关文章:
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
清除minerd进程的简单方法
公众号网站制作网页,微信公众号怎么制作?
如何通过云梦建站系统实现SEO快速优化?
网站图片在线制作软件,怎么在图片上做链接?
如何有效防御Web建站篡改攻击?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
如何快速生成专业多端适配建站电话?
如何快速搭建自助建站会员专属系统?
建站之星如何一键生成手机站?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
深圳网站制作平台,深圳市做网站好的公司有哪些?
西安大型网站制作公司,西安招聘网站最好的是哪个?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
建站之星后台管理如何实现高效配置?
非常酷的网站设计制作软件,酷培ai教育官方网站?
小型网站制作HTML,*游戏网站怎么搭建?
家庭建站与云服务器建站,如何选择更优?
C#如何序列化对象为XML XmlSerializer用法
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
建站为何优先选择香港服务器?
香港服务器如何优化才能显著提升网站加载速度?
盘锦网站制作公司,盘锦大洼有多少5G网站?
如何快速搭建高效香港服务器网站?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
香港服务器部署网站为何提示未备案?
建站之星如何实现五合一智能建站与营销推广?
建站之星上传入口如何快速找到?
实现虚拟支付需哪些建站技术支撑?
定制建站价位费用解析与套餐推荐全攻略
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
如何构建满足综合性能需求的优质建站方案?
自助网站制作软件,个人如何自助建网站?
制作公司内部网站有哪些,内网如何建网站?
如何通过商城自助建站源码实现零基础高效建站?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
红河网站制作公司,红河事业单位身份证如何上传?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
用v-html解决Vue.js渲染中html标签不被解析的问题
建站之星免费版是否永久可用?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
零服务器AI建站解决方案:快速部署与云端平台低成本实践
建站之星安装后如何自定义网站颜色与字体?
建站之星2.7模板快速切换与批量管理功能操作指南
建站之星如何优化SEO以实现高效排名?
,柠檬视频怎样兑换vip?
怀化网站制作公司,怀化新生儿上户网上办理流程?
*请认真填写需求信息,我们会在24小时内与您取得联系。