jQuery detach()

本文概述

  • jQuery detach()方法的示例
  • jQuery detach()示例2
  • detach()和remove()方法之间的区别
  • jQuery detach()示例3
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 srcmini.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="http://img.readke.com/220429/1T44U400-1.jpg"> < /script> < /head> < body> < p> Hello Guys!< /p> < p> This is srcmini.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()】立即测试
通过上面的示例, 很明显jQuery detach()方法不会删除内部数据和事件。在上面的示例中, 即使应用了detach()方法, click事件仍然保持安全。

    推荐阅读