老生常谈jquery中detach()和remove()的区别


Posted in Javascript onMarch 02, 2017

JQuery是一个很大强的工具库,在工作中开发中,可是有些方法还是因为不常用到,或是没有注意到而被我们而忽略。

remove()和detach()可能就是其中的一个,可能remove()我们用得比较多,而detach()就可能会很少了

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

方法名 参数 事件及数据是否也被移除 元素自身是否被移除
remove 支持选择器表达 是(无参数时),有参数时要根据参数所涉及的范围
detach 参数同remove 情况同remove

remove:移除节点

- 无参数,移除自身整个节点以及该节点的内部的所有节点,包括节点上事件与数据

- 有参数,移除筛选出的节点以及该节点的内部的所有节点,包括节点上事件与数据

detach:移除节点

- 移除的处理与remove一致

- 与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来

- 例如:$("p").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。

eq:

<html>

<head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
  <style type="text/css">
    p {
      border: 1px solid red;
    }
  </style>
  <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>

<body>
<h3>给页面2个p元素节点绑定点击事件,点击后弹出自己本身的节点内容</h3>

<p>元素p1,同时绑定点击事件</p>

<p>元素p2,同时绑定点击事件</p>

<h3>通过点击2个按钮后观察方法处理的区别</h3>
<button>点击通过remove处理元素p1</button>
<button>点击通过detach处理元素p2</button>
</body>
<script type="text/javascript">
  //给页面上2个p元素都绑定时间 
  $('p').click(function (e) {
    alert(e.target.innerHTML)
  })

  $("button:first").click(function () {
    var p = $("p:first").remove();
    p.css('color', 'red').html('p1通过remove处理后,点击该元素,事件丢失')
    $("body").append(p);
  });

  $("button:last").click(function () {
    var p = $("p:first").detach();
    p.css('color', 'blue').text('p2通过detach处理后,点击该元素事件存在')
    $("body").append(p);
  });
</script>
</script>

</html >

以上这篇老生常谈jquery中detach()和remove()的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery Dialog 弹出层对话框插件
Aug 09 Javascript
在次封装easyui-Dialog插件实现代码
Nov 14 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
Nov 20 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
Dec 20 Javascript
Javascript的严格模式strict mode详细介绍
Jun 06 Javascript
Javascript核心读书有感之语言核心
Feb 01 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
Nov 03 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
Apr 15 Javascript
react-router4 嵌套路由的使用方法
Jul 24 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
Mar 08 Javascript
夯基础之手撕javascript继承详解
Nov 09 Javascript
小程序中手机号识别的示例
Dec 14 Javascript
jQuery实用密码强度检测
Mar 02 #Javascript
通过npm引用的vue组件使用详解
Mar 02 #Javascript
完美解决spring websocket自动断开连接再创建引发的问题
Mar 02 #Javascript
vue-dialog的弹出层组件
May 25 #Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
Mar 01 #Javascript
基于Bootstrap的网页设计实例
Mar 01 #Javascript
JS中的作用域链
Mar 01 #Javascript
You might like
一个简单的PHP投票程序源码
2007/03/11 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
JS双击变input框批量修改内容
2016/12/12 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
python二分法实现实例
2013/11/21 Python
python绘制圆柱体的方法
2018/07/02 Python
Python3.4解释器用法简单示例
2019/03/22 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
如何利用python进行时间序列分析
2020/08/04 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
内勤岗位职责范本
2015/04/13 职场文书
小王子读书笔记
2015/06/29 职场文书
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript
Linux磁盘管理方法介绍
2022/06/01 Servers
Oracle中日期的使用方法实例
2022/07/07 Oracle