为了账号安全,请及时绑定邮箱和手机立即绑定

detach()

<html>


<head>

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

    <script src="https://www.imooc.com/static/lib/jquery/1.9.1/jquery.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; //去重

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

    });


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

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

        //事件还是存在

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

    });

    </script>

</body>


</html>

http://img1.sycdn.imooc.com//5aa808ad00010ecd12750669.jpg

正在回答

1 回答

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

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

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

    });

如果p的length为0,也就是if条件(!$("p").length)为1,即为真,返回,就不进行下一条语句了。

如果p的length为1,也就是if条件(!$("p").length)为0,即为假,就不return了,才进行下一条语句,保留p的数据,然后删除p(我认为可以理解为逻辑删除)

哪位亲如果觉得不对请指正

2 回复 有任何疑惑可以回复我~
#1

web_東 提问者

非常感谢!
2018-03-15 回复 有任何疑惑可以回复我~
#2

waiting_warm 回复 web_東 提问者

不客气
2018-03-15 回复 有任何疑惑可以回复我~
#3

weixin_慕勒2266735

如果不去重,连续点击两次删除,再添加就加不上了,请问连续点击删除到底发生了什么?
2019-02-21 回复 有任何疑惑可以回复我~
#4

waiting_warm 回复 weixin_慕勒2266735

我就说说我的理解,还是那句话,哪位亲觉得不正确请指正 第一次点删除,移除了p,保存了它原有p的对象 第二次点删除,p已经不存在了,但是依惯例还是要保存,但没有p东西给他保存,空了,所以也就添加了空的
2019-03-22 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消
jQuery基础(二)—DOM篇
  • 参与学习       114013    人
  • 解答问题       590    个

jQuery第二阶段开启DOM修炼,了解创建、插入、删除与替换

进入课程
意见反馈 帮助中心 APP下载
官方微信