位置: 编程技术 - 正文

详解jQuery中的empty、remove和detach

编辑:rootadmin

推荐整理分享详解jQuery中的empty、remove和detach,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

通过一张对比表来解释几个方法之间的不同

三者都有把元素移除的作用,但细微的差别,造就了它们的使命不同。

最权威的解释当然是jQuery_API咯,下面是API中关于他三儿的部分截取。

一、empty:

This method removes not only child (and other descendant) elements, but also any text within the set of matched elements. This is because, according to the DOM specification, any string of text within an element is considered a child node of that element.To avoid memory leaks, jQuery removes other constructs such as data and event handlers from the child elements before removing the elements themselves. If you want to remove elements without destroying their data or event handlers (so they can be re-added later), use .detach() instead.

注意:加粗的部分,通过empty移除后代元素,会移除其事件的。

为什么呢&#;

防止内存泄露!!!

二、remove:

Similar to .empty(), the .remove() method takes elements out of the DOM. Use .remove() when you want to remove the element itself, as well as everything inside it. In addition to the elements themselves, all bound events and jQuery data associated with the elements are removed. To remove the elements without removing data and events, use .detach() instead.

remove和empty方法一样,都会移除元素的事件句柄,从而避免内存泄露。

区别:remove包含了移除事件本身,而empty是后代元素。

详解jQuery中的empty、remove和detach

三、detach:

从empty和remove的介绍中(英文斜体部分),可以或多或少得知,detach是不会移除事件句柄的。

那么我们再来看看详细的API讲解:

The .detach() method is the same as .remove(), except that .detach() keeps all jQuery data associated with the removed elements. This method is useful when removed elements are to be reinserted into the DOM at a later time.

咦,什么意思?

看了detach的注解,不知道大家有没有眼前一亮,detach不能用来删除废弃的元素。

为什么呢?

因为它保留了事件驱动嘛,这样不就会造成内存泄露么。

所以要删除以后不再利用的元素时,使用empty或者remove。

那要detach有何用?

用处大了。

当我们要对一个元素进行大规模的增删改的时候,我们可以用detach将这个元素提取出来,然后在这个元素上进行操作,而不是在整个dom文档中进行操作。

好处就是:减少对整个dom文档的修改,从而减少页面重绘;而且对整个dom文档进行操作,在ie下还可能会造成内存泄露哦。所以稳妥起见,还是利用detach这一神器吧。

下面是一个demo,首先对#container元素绑定click事件(事件委托),然后利用detach将其脱离文档,然后再创建两个child元素,追加到#container元素中,最后将#container重新添加到body后。

以上所述是小编给大家介绍的jQuery中的empty、remove和detach的区别,希望对大家有所帮助!

对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解 虽然jquery的较新的api已经很好用了,但是在实际工作还是有做二次封装的必要,好处有:1,二次封装后的API更加简洁,更符合个人的使用习惯;2,可以

jquery中实现时间戳与日期相互转换 直接看代码:提醒:不要忘记了引用jquery的类库(function($){$.extend({myTime:{/***当前时间戳*@returnintunix时间戳(秒)*/CurTime:function(){returnDate.parse(newDate())/;},/*

DIV随滚动条滚动而滚动的实现代码【推荐】 记得以前写这样的代码比较麻烦,现在有了JQuery简单多了,就几行代码搞定!scripttype="text/javascript"src="Js/jquery-1.7.2.min.js"/scriptscripttype="text/javascript"$(funct

标签: 详解jQuery中的empty、remove和detach

本文链接地址:https://www.jiuchutong.com/biancheng/384919.html 转载请保留说明!

上一篇:JQuery导航菜单选择特效(jquery 菜单)

下一篇:对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解

  • 居民个人的综合所得
  • 发票章是否需要到税务局备案
  • 签订土地使用权成交确认协议书
  • 分期付款发票开具
  • 国债利息收入要计入应纳税所得额吗
  • 建筑类企业是否允许留抵
  • 未达起征点是什么
  • 销售商品,提供服务以及从事其他经营活动
  • 预算外收入计入什么科目
  • 五险一金可以在手机上交吗
  • 交强险发票备注的车船税怎么报销
  • 道路占用挖掘费要交印花税吗
  • 运输业应列入
  • 哪些支出可计入成本
  • 房屋租赁合同印花
  • 经济补偿金如何计税
  • 火车票增值税什么意思
  • 航天信息维护费280元会计分录
  • 维修属于劳务还是劳务
  • 公司注销资产负债表期末余额不能为0
  • 出差人什么意思
  • 行业协会会费收缴标准
  • 鸿蒙系统怎么开启开发者权限
  • 苹果键盘快捷键怎么用
  • macbookpro提醒事项
  • 一个产品要有什么认证
  • 退货红冲发票要收回原发票吗
  • 公司给客户报销费用可以吗
  • PHP:Memcached::quit()的用法_Memcached类
  • 存货周转率公式怎么算
  • 如何失业保险金
  • 所得税和应交所得税
  • 广度优先算法代码
  • 结转所得税费用到本年利润的会计分录
  • vite怎么打包
  • 缴纳租房押金会被骗吗
  • 长期借款和实收资本
  • 万字短文
  • thinkphp6项目
  • 先发货再开票
  • 微信小程序最新咸鱼之王兑换
  • 前端面试题校招
  • 增值税专用发票有几联?
  • 企业收到土地回收怎么办
  • 股息和未分配利润的区别
  • 收据可以用来做账吗
  • 商品流通企业库存商品的核算方法有以下几种
  • 用简易计税办法开发票
  • 进项税转出的会计分录
  • 公司的融资租赁怎么做账
  • 购礼品送客户的文案
  • SQL Server 2008 数据库有哪些版本?
  • 固定资产折旧和无形资产摊销
  • 用材料抵扣货款通知怎样写
  • 专票红冲信息表填开显示红字信息表金额大于蓝色金额
  • 装修付款分期
  • 合作研究开发项目的合同
  • 固定资产没有发票
  • 固定资产减值准备一经计提不得转回
  • jdbc取数据
  • php 访问数据库
  • 如何查看mysql连接池
  • unix常用命令
  • win8无法安装其它软件
  • win10装老版本
  • linux 操作系统
  • centos 安装chia
  • Unity3D Editor类(Inspector) 编写经验总结
  • android images
  • 菜单下一章
  • 批量管理远程桌面
  • shell脚本switch
  • shell脚本-lt
  • python连接mq
  • jquery有哪些
  • springmvc接收json需要配
  • 税务局通知自查该怎么办理
  • 如何在网上查看自己的征信
  • 运输类税点
  • 福建广电网上营业厅下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设