zoukankan      html  css  js  c++  java
  • DOM节点删除之保留数据的删除操作detach()

    DOM节点删除之保留数据的删除操作detach()

    如果我们希望临时删除页面上的节点,但是又不希望节点上的数据与事件丢失,并且能在下一个时间段让这个删除的节点显示到页面,这时候就可以使用detach方法来处理

    detach从字面上就很容易理解。让一个web元素托管。即从当前页面中移除该元素,但保留这个元素的内存模型对象。

    来看看jquery官方文档的解释:

    这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。
    $("div").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。

    当然这里要特别注意,detach方法是JQuery特有的,所以它只能处理通过JQuery的方法绑定的事件或者数据

    参考右边的代码区域,通过 $("p").detach()把所有的P元素删除后,再通过append把删除的p元素放到页面上,通过点击文字,可以证明事件没有丢失

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

    JQuery是一个很大强的工具库,在工作开发中,有些方法因为不常用到,或是没有注意到而被我们忽略。

    remove()和detach()可能就是其中的一个,可能remove()我们用得比较多,而detach()就可能会很少了

     通过一张对比表来解释2个方法之间的不同

    方法名

    参数

    事件及数据是否也被移除

    元素自身是否被移除

    remove

    支持选择器表达

    是(无参数时),有参数时要根据参数所涉及的范围

    detach

    参数同remove

    情况同remove

    remove:移除节点

    • 无参数,移除自身整个节点以及该节点的内部的所有节点,包括节点上事件与数据
    • 有参数,移除筛选出的节点以及该节点的内部的所有节点,包括节点上事件与数据

    detach:移除节点

    • 移除的处理与remove一致
    • 与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来
    • 例如:$("p").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。
  • 相关阅读:
    adb稳定性monkey测试(转载)
    Cookie、sessionStorage、localStorage的异同
    Vue-eBookReader 学习笔记(初始化部分)
    ValueError: Max value is 14 解决方案
    Chrome 报错: Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
    Bootstrap使用方法
    Vue笔记
    3D相册 复仇者联盟
    奔跑的少年
    钟表练习 html+css实现
  • 原文地址:https://www.cnblogs.com/liaolijun/p/7325031.html
Copyright © 2011-2022 走看看