问答详情
源自:4-5 DOM节点删除之detach()和remove()区别

jquery的remove()方法会将方法和数据移除,那么这个数据是指什么?

<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 id="p1">元素p1,同时绑定点击事件</p>

    <p>元素p2,同时绑定点击事件</p>

    <h3>通过点击2个按钮后观察方法处理的区别</h3>

    <button>点击通过remove处理元素p1</button>

    <button>点击通过detach处理元素p2</button>

</body>

<script type="text/javascript">

    $("p").on("click",function(e){

        alert(e.target.innerHTML);

    });

    $("button:first").on("click",function(){

        var p = $("p:first").remove();

        alert(p.attr("id"));

        p.css("color","red").text("remove后事件也消失了");

        $("body").append(p);

    });

    $("button:eq(1)").on("click",function(){

        var p = $("p:eq(1)").detach();

        $("body").append(p);

    });

</script>

</script>

</html>

我给p加了id,我remove后将该对象的idalert了一下,还是可以出来,我比较好奇所说的数据是指什么?

提问者:昔年123 2017-01-18 11:18

个回答

  • qq_巧克力人生
    2017-01-18 11:57:49

    这个问题很深,涉及到js内存处理机制。