个性化阅读
专注于IT技术分析

jQuery detach()

本文概述

jQuery detach()方法用于删除选定的元素, 包括所有文本和子节点, 并且仅保留数据和事件。

此方法将保存已删除元素的副本, 以在以后需要时重新插入它们。

还有一些其他方法可用于删除元素, 例如jQuery remove()方法, jQuery empty()方法等。但是它们之间有一些区别。

jQuery remove()方法:此方法用于删除元素及其数据和事件。

jQuery empty()方法:此方法用于仅从所选元素中删除内容。

句法:

$(selector).detach()

jQuery detach()方法的示例

让我们以一个示例来演示jQuery detach()方法的效果。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $("p").detach();
  });
});
</script>
</head>
<body>
<p>Hello Guys!</p>
<p>This is srcmini02.com</p>
<button>Click here to detach all p elements</button>
</body>
</html>

立即测试

jQuery detach()示例2

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>detach demo</title>
  <style>
  p {
    background: lightpink;
    margin: 6px 0;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>Hello Guys!</p>
<p>This is srcmini02.com</p>
<button>Click here to Attach/detach all p elements. </button>
<script>
$( "p" ).click(function() {
  $( this ).toggleClass( "off" );
});
var p;
$( "button" ).click(function() {
  if ( p ) {
    p.appendTo( "body" );
    p = null;
  } else {
    p = $( "p" ).detach();
  }
});
</script>
</body>
</html>

立即测试

detach()和remove()方法之间的区别

让我们以一个示例来清除detach()和remove()方法之间的区别:

jQuery detach()示例3

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("#btn1").click(function(){
        $("body").append($("#p1").detach());
    });
    $("#btn2").click(function(){
        $("body").append($("#p2").remove());
    });
    $("p").click(function(){
        $(this).animate({fontSize: "+=1px"})
    });
});
</script>
</head>
<body>
<p id="p1"><b>This paragraph will keep its click event even after it is moved.</b></p>
<p id="p2">This paragraph will not keep its click event after it is moved.</p>
<button id="btn1">Detach and append p element</button>
<button id="btn2">Remove and append p element</button>
</body>
</html>

立即测试

通过上面的示例, 很明显jQuery detach()方法不会删除内部数据和事件。在上面的示例中, 即使应用了detach()方法, click事件仍然保持安全。

赞(0)
未经允许不得转载:srcmini » jQuery detach()

评论 抢沙发

评论前必须登录!