zoukankan      html  css  js  c++  java
  • jQuery基础:remove()与 detach()区别

    1、detach()

    • detach() 方法移除被选元素,包括所有文本和子节点。
    • 这个方法会保留 jQuery 对象中的匹配的元素,因而可以在将来再使用这些匹配的元素。
    • detach() 会保留所有绑定的事件、附加的数据,这一点与 remove() 不同。
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            p{
                margin: 6px;
                background: yellow;
            }
            p.off{
                background: red;
            }
        </style>
    </head>
    <body>
        <p>hello</p>
        how are
        <p>you?</p>
        <button>按钮</button>
    </body>
    <script src="libs/jquery-1.8.3.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $("p").click(function(){
                $(this).toggleClass("off");
            })
    
            var p;
            $("button").click(function(){
                if(p){
                    p.appendTo("body");
                    p = null;
                }else{
                    p = $("p").detach();
                    console.log(p);
                }
            })
        });
    </script>
    </html>

    2、remove()

    • 将匹配元素集合从DOM中删除。
    • 同时移除元素上的事件及 jQuery 数据。
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            p{
                margin: 6px;
                background: yellow;
            }
            p.off{
                background: red;
            }
        </style>
    </head>
    <body>
        <p>hello</p>
        how are
        <p>you?</p>
        <button>按钮</button>
    </body>
    <script src="libs/jquery-1.8.3.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $("p").click(function(){
                $(this).toggleClass("off");
            })
    
            var p;
            $("button").click(function(){
                if(p){
                    p.appendTo("body");
                    p = null;
                }else{
                    p = $("p").remove();
                    console.log(p);
                }
            });
    
            //移除 =》加上,点击没反应,绑定的事件失效
        });
    </script>
    </html>

    3、empty():移除匹配元素的所有子节点

    4、unwrap():将匹配元素集合的父级元素删除,保留自身(和兄弟元素,如果存在)在原来的位置。

  • 相关阅读:
    C++-struct类的新特性当class用
    rbenv、fish 與 VSCode 設置之路
    angularJS进阶阶段(4)
    插入排序
    Vimium
    Design Patterns 25
    Mysql(或者sqlite), Mongo中update Column + 1
    Hexo
    继承
    Gradle的依赖方式——Lombok在Gradle中的正确配置姿势
  • 原文地址:https://www.cnblogs.com/gao-xiong/p/5933284.html
Copyright © 2011-2022 走看看