位置: 编程技术 - 正文

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

  • 一般纳税人每个月需要报哪些税
  • 已申报税额是什么意思,要交吗
  • 滑准税是指关税的税率
  • 含税价和不含税计算公式
  • 小规模普票怎么冲红
  • 一般纳税人缴纳税金分录
  • 销售费用包括啥
  • 财报一季度
  • 没有签订购销合同的协议
  • 为什么社保账户有钱但是卡里没钱
  • 公积金缴存基数多久调整一次
  • 开发票产品名称
  • 建安企业会计处理
  • 计提所得税是在结转12月损益之前还是之后
  • 分公司税务是独立核算还是非独立
  • 利润借方余额表示盈利还是亏损
  • 工商年报单位缴费基数从哪看
  • 混业经营如何缴税?
  • 查询税务信用评级
  • 海关进口增值税可以抵扣吗
  • 所有者权益类科目借贷方向
  • 小规模零申报资产负债表报错了要交印花税吗
  • 企业扶贫款怎么做账
  • 总公司中标分公司结算可以吗
  • 苹果macbook 系统
  • cachelib
  • 如何认定坏账
  • 发行债券会计分录怎么写
  • 未签订销售合同
  • 税务行政罚款会罚多少
  • php imagefill
  • 企业雇佣临时工个税
  • php关联数组和索引数组的区别
  • 高新企业技术服务成本核算
  • 低值易耗品摊销方法名称怎么选
  • php中实现文件上传需要用到哪几个函数
  • 兼职员工的工资怎么发放
  • 金税盘全额抵扣政策
  • 收到快递赔款分录怎么做
  • 印花税减半征收减免性质代码
  • 自然人专项扣除填报
  • python监控模块
  • 费用科目分别有什么
  • phpcms使用教程
  • 平时加班和节假日加班工资
  • 年末未分配利润减去年初未分配利润等于什么
  • 其他应付款需要结转损益吗
  • 新《准则》适用对象为
  • PostgreSQL 安装和简单使用第1/2页
  • 外购商品职工福利进项税额转出如何记账?
  • 现金日记账余额自动生成公式
  • 有限合伙企业中谨慎有限合伙人的应当
  • 报销原材料运输费怎么算
  • 办外经证需要交税吗
  • 销项税票怎么开
  • 工伤医疗补助可以申请吗
  • 不得免征和抵扣税额抵减额分录
  • 上个月开的发票这个月作废如何做帐?
  • 单位结算卡和回单卡
  • 商业企业进货会计分录
  • mysql查看使用情况
  • macos mysql
  • 搭建docker私有仓库实验报告
  • 如何抛弃七情六欲
  • windows 2000 server sp4 下载
  • ubuntuone
  • 分布式交互
  • 此windows副本不是正版黑屏
  • ghost到一半报错
  • xp系统开机只有一个鼠标箭头
  • mysql删除key
  • linux限制用户cpu使用
  • 注册表没有windows nt
  • Win10 Build 14279正式推送 更新后QQ可能会崩溃
  • vue.js computed
  • 常用的js框架有哪些
  • 网页js调试
  • 解读高考作文
  • 抱歉,初始化安卓设置时发生了问题
  • 报价单盖什么公章
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设