问答详情
源自:4-4 DOM节点删除之保留数据的删除操作detach()

下面的代码里,【去重】的一行是什么意思啊,无法理解

<html>


<head>

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>

    <style type="text/css">

    p {

        color: red;

    }

    </style>

</head>


<body>

    <p>P元素1,默认给绑定一个点击事件</p>

    <p>P元素2,默认给绑定一个点击事件</p>

    <button id="bt1">点击删除 p 元素</button>

    <button id="bt2">点击移动 p 元素</button>

    <script type="text/javascript">

    $('p').click(function(e) {

        alert(e.target.innerHTML)

    })

    var p;

    $("#bt1").click(function() {

        if (!$("p").length) return; //去重

        //通过detach方法删除元素

        //只是页面不可见,但是这个节点还是保存在内存中

        //数据与事件都不会丢失

        p = $("p").detach()

    });


    $("#bt2").click(function() {

        //把p元素在添加到页面中

        //事件还是存在

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

    });

    </script>

</body>


</html>


提问者:puddingAImilk 2016-11-08 17:28

个回答

  • 慕粉4040442
    2016-11-08 18:30:01
    已采纳

    判断:如果P的长度为空就返回,不执行下面的detach()代码了。 if (!$("p").length)是if ($("p").length == null)的逼格写法