老生常谈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的面向对象(二)
Nov 09 Javascript
JQuery的ready函数与JS的onload的区别详解
Nov 21 Javascript
jquery插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
Nov 28 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
Jun 05 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
Aug 23 Javascript
ztree加载完成后显示勾选节点的实现代码
Oct 22 Javascript
Vue之Mixins(混入)的使用方法
Sep 24 Javascript
vue 项目引入echarts 添加点击事件操作
Sep 09 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
Oct 27 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 Vue.js
Vue实现省市区三级联动
Dec 27 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
PHP-MySQL教程归纳总结
2008/06/07 PHP
PHP跳转页面的几种实现方法详解
2013/06/08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
python使用多线程不断刷新网页的方法
2015/03/31 Python
深入浅出学习python装饰器
2017/09/29 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
python支持多继承吗
2020/06/19 Python
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
酒吧创业计划书
2014/01/18 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
施工协议书范本
2014/04/22 职场文书
岗位明星事迹材料
2014/05/18 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
前台接待岗位职责
2015/02/03 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP