標籤:des style blog http color java 使用 strong
empty:
把所有段落的子項目(包括文本節點)刪除
HTML 程式碼:
<p>Hello, <span>Person</span> <a href="#">and person</a></p>
jQuery 代碼:
$("p").empty();
結果:
<p></p>
remove:
從DOM中刪除所有匹配的元素。
這個方法不會把匹配的元素從jQuery對象中刪除,因而可以在將來再使用這些匹配的元素。但除了這個元素本身得以保留之外,其他的比如綁定的事件,附加的資料等都會被移除。
就是說empty保留了自身,而remove則會移除自己。
detach:
從DOM中刪除所有匹配的元素。
這個方法不會把匹配的元素從jQuery對象中刪除,因而可以在將來再使用這些匹配的元素。與remove()不同的是,所有綁定的事件、附加的資料等都會保留下來。
下面著重就detach不移除元素繫結的事件及資料這一特性來舉個例子。
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <script type="text/javascript" src="jquery-1.11.0.js" ></script> <script type="text/javascript"> $(function() { var $div2=$("#div2"); $div2.data("value", 1); $("#detach").on("click", function() { $div2.detach(); }); $("#back").on("click", function() { $("#div1").append($div2); console.log($("#div2").data("value")); }); }); </script> </head> <body> <div id="div1"> <div id="div2"> div2 </div> <div id="div3"> div3 </div> </div> <input value="detach" id="detach" type="button" /> <input value="back" id="back" type="button" /> </body></html>
如果將detach改為remove,那麼點擊back之後,控制台顯示為undefined。
注意detach的傳回值,返回被detach的元素。
var p;
$( "button" ).click(function() {
if ( p ) {
p.appendTo( "body" );
p = null;
} else {
p = $( "p" ).detach();
}
});
參考:http://blog.csdn.net/qinshenxue/article/details/23832221