老生常谈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的实现回车键Enter切换焦点
Sep 14 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
Aug 14 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
Nov 06 Javascript
浅析Javascript中“==”与“===”的区别
Dec 23 Javascript
javascript创建动态表单的方法
Jul 25 Javascript
简单纯js实现点击切换TAB标签实例
Aug 23 Javascript
javascript和jquery实现用户登录验证
May 04 Javascript
JS &amp; JQuery 动态添加 select option
Jun 08 Javascript
canvas简单快速的实现知乎登录页背景效果
May 08 Javascript
超轻量级的js时间库miment使用解析
Aug 02 Javascript
vue和iview实现Scroll 数据无限滚动功能
Oct 31 Javascript
vue+element_ui上传文件,并传递额外参数操作
Dec 05 Vue.js
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
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
CSS和Javascript简单复习资料
2010/06/29 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
深入理解Python中各种方法的运作原理
2015/06/15 Python
Python聊天室实例程序分享
2016/01/05 Python
Python模拟登陆实现代码
2017/06/14 Python
python分布式环境下的限流器的示例
2017/10/26 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
简单了解django文件下载方式
2020/02/10 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
澳大利亚商务邀请函
2014/01/17 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
日语专业毕业生自荐书
2014/06/18 职场文书
营销与策划专业求职信
2014/06/20 职场文书
学校实习推荐信
2015/03/27 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
灵能百分百第三季什么时候来?
2022/03/15 日漫