老生常谈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 相关文章推荐
JS性能优化笔记搜索整理
Aug 21 Javascript
JS按字节截取字符长度实例
Nov 20 Javascript
js对图片base64编码字符串进行解码并输出图像示例
Mar 17 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
May 20 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
Nov 09 Javascript
jQuery图片拖动组件Dropzone用法示例
Jan 17 Javascript
vue2.0 中#$emit,$on的使用详解
Jun 07 Javascript
js实现加载页面就自动触发超链接的示例
Aug 31 Javascript
Vue中父子组件通讯之todolist组件功能开发
May 21 Javascript
在小程序中使用Echart图表的示例代码
Aug 02 Javascript
react 国际化的实现代码示例
Sep 14 Javascript
vue实现div单选多选功能
Jul 16 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
jQuery 源码分析笔记
2011/05/25 PHP
php设计模式 Facade(外观模式)
2011/06/26 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
jquery中获取元素的几种方式小结
2011/07/05 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
python返回昨天日期的方法
2015/05/13 Python
python修改操作系统时间的方法
2015/05/18 Python
详解Python装饰器由浅入深
2016/12/09 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
Python中如何添加自定义模块
2020/06/09 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
40岁生日感言
2014/02/15 职场文书
关于安全的演讲稿
2014/05/09 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书