jQuery中detach&&remove&&empty三种方法的区别

jQuery中empty&&remove&&detach三种方法的区别

  empty():移除指定元素内部的所有内容,但不包括它本身

  remove():移除指定元素内部的所有内容,包括它本身,所有绑定的事件、附加的数据等都会删除

  detach():临时删除页面上的所有元素包括它本身,所有绑定的事件、附加的数据等都会保留下来

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

          $("div").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。

哈哈哈!举的例子,更加明确

            注:如有错误请联系本人更改或者删除

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>detach&&remove&&empty三种方法演示</title>
    <script src="../jQuery库/jquery-3.3.1.js"></script>
    <style>
        .DETACH,
        .REMOVE,
        .EMPTY{
            width: 300px;
            height: 166px;
            border: 5px solid #ccc;
        }
        .DETACH_DIV,
        .REMOVE_DIV,
        .EMPTY_DIV{
            width: 300px;
            height: 120px;
            border: 3px solid pink;
            box-sizing: border-box;
        }
    </style>
</head>
<body>
    <!-- empty方法演示块 -->
    <div class="EMPTY">
        <div class="EMPTY_DIV">
            <h1>小麦王</h1>
            <p>这是小麦王啤酒</p>
        </div>
        <input id="bt1" type="button" value="点击删除这中的class=EMPTY_DIV中的元素">
    </div>
    <script>
        $("#bt1").on("click",function(){
            $(".EMPTY_DIV").empty();
        });
    </script>
    <!-- remove方法演示块 -->
    <div class="REMOVE">
        <div class="REMOVE_DIV">
            <h1>哈尔滨</h1>
            <p>哈尔滨啤酒</p>
        </div>
        <input id="bt2" type="button" value="点击删除这里的class=REMOVE_DIV中的元素">
    </div>
    <script>
        $("#bt2").on("click",function(){
            $(".REMOVE_DIV").remove();
        });
    </script>
    <!-- detach方法演示块 -->
    <div class="DETACH">
        <div class="DETACH_DIV">
            <h1>雪花</h1>
            <p>雪花啤酒</p>
        </div>
        <input id="bt3" type="button" value="点击删除这里的class=DETACH_DIV中的元素">
        <input id="bt4" type="button" value="点击还原class=DETACH_DIV中的元素">
    </div>
    <script>
        $("#bt3").on("click",function(){
            p = $(".DETACH_DIV").detach();
        });
        $("#bt4").on("click",function(){
            $(".DETACH").prepend(p);
        });
    </script>
</body>
</html>

 

猜你喜欢

转载自www.cnblogs.com/Mykebai/p/9440535.html