老生常谈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 相关文章推荐
用prototype实现的简单小巧的多级联动菜单
Mar 24 Javascript
国外的为初学者写的JavaScript教程
Jun 09 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
Mar 12 Javascript
详解JavaScript中的异常处理方法
Jun 16 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
给easyui的datebox控件添加清空按钮的实现方法
Nov 09 Javascript
漂亮实用的页面loading(加载)封装代码
Feb 03 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
May 16 Javascript
vue实现简单loading进度条
Jun 06 Javascript
vue.js配合$.post从后台获取数据简单demo分享
Aug 11 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
Apr 09 Javascript
js前端设计模式优化50%表单校验代码示例
Jun 21 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
天津市收音机工业发展史
2021/03/04 无线电
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
php除数取整示例
2014/04/24 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
浅析javascript的return语句
2015/12/15 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
js实现获取鼠标当前的位置
2016/12/14 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
js实现动态增加文件域表单功能
2018/10/22 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
Python如何重新加载模块
2020/07/29 Python
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
学习雷锋活动总结
2014/04/29 职场文书
年度安全生产目标责任书
2014/07/23 职场文书
2014年教务工作总结
2014/12/03 职场文书
Vue3中的Refs和Ref详情
2021/11/11 Vue.js