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

一定要用append吗?

重新显示detach的元素一定要用append显示吗?试了prepend、after和before,发现都可以实现,想知道原因。

<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>    
<div id="d1" style="width: 100px;height: 50px;background: #CCC;"></div>    
<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);        
$("#d1").after(p)    });    
</script>
</body>
</html>


提问者:大山的子孙哟爱太阳 2018-12-29 11:26

个回答

  • qq_慕盖茨8361330
    2019-01-03 00:52:14
    已采纳

    他只是举例子 实际上都可以的