老生常谈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获取单选按钮的数据
Nov 27 Javascript
Javascript 更新 JavaScript 数组的 uniq 方法
Jan 23 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
Oct 15 Javascript
JavaScript在IE和FF下的兼容性问题
May 19 Javascript
a标签click和href执行顺序探讨
Jun 23 Javascript
微信小程序 Audio API详解及实例代码
Sep 30 Javascript
微信小程序左右滑动切换页面详解及实例代码
Feb 28 Javascript
vue页面使用阿里oss上传功能的实例(一)
Aug 09 Javascript
浅谈Node异步编程的机制
Oct 18 Javascript
JS运算符简单用法示例
Jan 19 Javascript
JavaScript 禁止用户保存图片的实现代码
Apr 28 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
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安装攻略:常见问题解答(一)
2006/10/09 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
js修改onclick动作的四种方法(推荐)
2016/08/18 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
Python和GO语言实现的消息摘要算法示例
2015/03/10 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
python 多进程队列数据处理详解
2019/12/23 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
软件配置管理有什么好处
2015/04/15 面试题
信息管理专业学生自荐信格式
2013/09/22 职场文书
升学宴主持词
2014/04/02 职场文书
关于环保的标语
2014/06/13 职场文书
高一军训决心书
2015/02/05 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
python内置模块之上下文管理contextlib
2022/06/14 Python