老生常谈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 相关文章推荐
用javascript判断IE版本号简单实用且向后兼容
Sep 11 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
Nov 28 Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 Javascript
Javascript中的delete操作符详细介绍
Jun 06 Javascript
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
RequireJS使用注意细节
May 15 Javascript
JSONP基础知识详解
Mar 19 Javascript
深入理解ES6的迭代器与生成器
Aug 19 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
Dec 05 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
Apr 17 Javascript
webpack+express实现文件精确缓存的示例代码
Jun 11 Javascript
JavaScript实现原型封装轮播图
Dec 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
简单易用的计数器(数据库)
2006/10/09 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
php画图实例
2014/11/05 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
php测试kafka项目示例
2020/02/06 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
js单词形式的运算符
2014/05/06 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
启动Atom并运行python文件的步骤
2018/11/09 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
python datetime处理时间小结
2020/04/16 Python
利用python爬取有道词典的方法
2020/12/08 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
一些Unix笔试题和面试题
2012/09/25 面试题
信息与计算科学专业推荐信
2014/02/23 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
护士辞职信怎么写
2015/02/27 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL
Android studio 简单计算器的编写
2022/05/20 Java/Android