jquery中remove()与detach()的区别

转载 2016年05月30日 15:08:35

jQuery是一个很大强的东西,在工作中常能用到,可是有些方法还是因为不常用到,或是没有注意到而被我们而忽略。

  remove()和detach()可能就是其中的一个,可能remove()我们用得比较多,而detach()就可能会很少了。可能我用的不够精吧,我是一次也没有用过。可是这次因为一个项目中一个问题,而用到它,感觉很有意思就记录下来,与大家分享。

  remove():官方的解释是

  从DOM中删除所有匹配的元素。这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。但除了这个元素本身得以保留之外,其他的比如绑定的事件,附加的数据等都会被移除。

  我的理解就是将元素移除了。但是怎么再找回来,说真的,我一直也没有找到,哪个朋友用过。可以告诉我,十分感谢,

  用法:

  从DOM中把所有段落删除

  HTML 代码:
  <p>Hello</p> how are <p>you?</p>
  jQuery 代码:
  $("p").remove();
  结果:
  how are

  这个方法,不多说了,我们主要说一下detach()这个方法,

  官方描述:

  从DOM中删除所有匹配的元素。这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。  

  描述:

  从DOM中把所有段落删除

  HTML 代码:
 <p>Hello</p> how are <p>you?</p>
  jQuery 代码:
  $("p").detach();
  结果:
  how are

  描述:

  从DOM中把带有hello类的段落删除

  HTML 代码:
  <p class="hello">Hello</p> how are <p>you?</p>
   jQuery 代码:
  $("p").detach(".hello");
  结果:
  how are <p>you?</p>

我们这么一看,好像没有什么区别啊。这二个功能,哈哈。。。。我现在说一下我遇到的情况。然后是如何解决的,大家就明白了。

我这里有一个表单,其中有一项是 注册码,就是每个信息都会有一个独立的注册码,没有注册码是不能注册成功的。我用的是jquery的控件formValidator来进行验证的,这个控件大家都用过,他是在页面加载的时候,就开始验证了,而且对于css中的display和jquery里的hide()方法,它是无视的。本来呢。这是没有问题,可是用户却提出了一个新的需求,就是加一个选项,用来判断是否显示这个注册码,如果不显示,那么就不要对注册码文本框进行验证,无耻的需求。

在试用了css的display和jquery的hide()之后,我把目光放到了remove()中。它到是不验证了,可是我选择要验证的时候,被移除的内容加不回来了,所以我开始找能回来了的。这时候,发现了detach()。它的有什么好处呢。我下面放一代码出来

[javascript] view plain copy
  1. var p;  
  2.         function selectChange() {  
  3.               
  4.   
  5.             if (document.getElementById("ddl_schoolarea").value != "请选择") {  
  6.   
  7.                 p = $("#trlession").detach();  
  8.             }  
  9.             else {  
  10.                 //table1为一个table名字  
  11.                 $("#table1").append(p);  
  12.                   
  13.             }  
  14.         }  

看到这段代码之后,我想不用我过多的解释了。大家就明白了吧,很有意思的方法。

相关文章推荐

jquery中remove()与detach()的区别

jquery是一个很大强的东西,在工作中常能用到,可是有些方法还是因为不常用到,或是没有注意到而被我们而忽略。   remove()和detach()可能就是其中的一个,可能remove()我们用得...

jQuery源码分析之remove和detach方法的区别

请提前阅读:点击打开链接 detach源码分析: detach: function( selector ) { return this.remove( selector, true ); } 可...

jQuery解读之empty、remove、detach区别

通过一张表来

jQuery删除元素方法remove(),detach(),empty()

1.empty() 它是清空节点,但是那些节点的标签还在。 结果是:p里面的都被删除了,...

jquery中如何移除元素-remove(),empty(),detach()

下面就来深拔一下其中的difference。 remove()和detach()表示移除的是选择器选中的元素,返回值相同,都是返回被删除的元素。两者不同之处是,前者会同时删除元素关联的data值和事件...

DOM节点删除之detach()和remove()区别

JQuery是一个很大强的工具库,在工作开发中,有些方法因为不常用到,或是没有注意到而被我们忽略。 remove()和detach()可能就是其中的一个,可能remove()我们用得比较多,而d...

remove() 删除节点 | detach() 删除节点 | empty() 清空节点的内容 | clone() 复制节点

remove() 删除节点 | detach() 删除节点 | empty() 清空节点的内容 | clone() 复制节点 ...

说一说Jquery中的empty()与remove()的区别和用法

今天在改一个新人写的代码,好吧,我承认改代码与自己写代码要来的痛苦。 主要是在测试一个table。table中有一列是同删除操作。我的删除功能是 这样的,当点击删除的时候,判断这个table中的tr行...

jQuery---JQuery remove(),removeAttr()和removeClass()示例区别

JQuery remove()方法 remove()方法与detach()方法相同,它从DOM中删除所选元素,包括所有文本和子节点。但是,它不会将与DOM中匹配的元素集合中的已删除元素相关联的所有数...

jquery笔记:文档处理 replaceWith, replaceAll, detach, clone

replaceWith(content|fn) contentString, Element, jQuery, FunctionV1.2 用于将匹配元素替换掉的内容。如果这里传递一个函数进来的话,...
  • peade
  • peade
  • 2017年02月05日 20:28
  • 158
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jquery中remove()与detach()的区别
举报原因:
原因补充:

(最多只允许输入30个字)