位置: 编程技术 - 正文

详解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详解

  • 业务招待费福利费怎么算超支
  • 提供劳务应收未收的款项
  • 金蝶k3费用发票怎么做
  • 税务局的信用等级是多少
  • 个税身份验证不通过
  • 分公司可以成为单位犯罪的主体吗
  • 季度预缴能不能弥补亏损
  • 小企业会计准则以前年度损益调整
  • 企业所得税可以税前扣除的税有哪些
  • 房企与个人订立购房合同是否贴花?
  • 公司购买软件著作权
  • 业务招待费如何调增调减
  • 未实现融资收益纳税调整
  • 利息及债券溢价摊销表
  • 党组织专项经费项社区服务队项目简介
  • 房地产开发公司注册条件
  • 公司是否可以开电子发票
  • 产权转移书据有哪些
  • 软件企业怎么享受三免两减半
  • 未弥补完亏损可以计提盈余公积
  • 委托贷款利息收入怎么开发票
  • 股权并购和资产的关系
  • 往来款和应收账款
  • 双系统怎么卸载ubuntu
  • 可转债溢价率多高为好
  • 预提费用支付是指什么
  • 外贸企业出口货物
  • 附加税要先计提再支付吗
  • linux系统设置中文语言
  • svchost很多进程
  • php数组函数输出《咏雪》里有多少"片"字
  • php log函数
  • 纳税人解除劳动合同证明
  • 冬日里的科赫尔湖,德国巴伐利亚州 (© Reinhard Schmid/eStock Photo)
  • kafka图形化界面
  • vue3开发app
  • 会计申报需要哪些数据
  • html里面有什么
  • spring集成xfire
  • redis相关
  • php比较大小的函数
  • convert convert
  • 抄税前要做什么
  • 利息发票可以抵扣吗
  • 非财政补助结转是什么类科目
  • 销售产品收到现金的会计分录
  • 红冲暂估是什么意思
  • java中的常量是什么意思
  • SQL 联合查询与XML解析实例详解
  • 国家税务总局纳税服务规范
  • 存货的采购成本不包括
  • 申报前的增值税怎么算
  • 存货跌价准备是什么意思
  • 减免税需要纳税申报吗
  • 除了住房公积金还有什么基金
  • 国外扣款手续费
  • 建筑业增值税会退税吗
  • 买货物没有进项税额,如何开6个点发票
  • 预计负债初始计量的最佳估计数的确定
  • 发票金额太大怎么办
  • 期末损益类科目结转
  • 资产负债表里包括应付利息吗
  • mysql未知的服务器主机
  • 怎么关闭windows更新提示
  • 和查看已连接的wifi密码
  • 微软推送windows 11
  • win10麦克风加强没有了
  • win10开始菜单图标消失
  • 红石id
  • android程序的基本结构
  • 怎么把perl删除干净
  • css样式表规则由什么组成
  • python toad
  • android中fragment
  • 电子税务局获取验证码异常
  • 五四新文化运动究竟新在哪里
  • 手机上交了社保可以退吗
  • 小微企业所得税优惠政策最新2023
  • 杜蕾斯验证真伪扫描
  • 浙江残保金征收标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设