老生常谈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 图片等比例缩放代码
May 13 Javascript
用Javascript实现Windows任务管理器的代码
Mar 27 Javascript
解析使用JS 清空File控件的路径值
Jul 08 Javascript
JQ获取动态加载的图片大小的正确方法分享
Nov 08 Javascript
jquery中object对象循环遍历的方法
Dec 18 Javascript
Angular的$http与$location
Dec 26 Javascript
JavaScript实现随机数生成器(去重)
Oct 13 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
Dec 28 Javascript
详解webpack模块化管理和打包工具
Apr 21 Javascript
深入理解JavaScript的值传递和引用传递
Oct 24 Javascript
微信小程序websocket聊天室的实现示例代码
Feb 12 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 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中将字符串转化为整数(int) intval() printf() 性能测试
2020/03/20 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
详解Vue之计算属性
2020/06/20 Javascript
Python实时获取cmd的输出
2015/12/13 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
python3 线性回归验证方法
2019/07/09 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
python Kmeans算法原理深入解析
2019/08/23 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
会议活动邀请函
2014/01/27 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
少年闰土教学反思
2014/02/22 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS