下面示例可能用到以下HTML代碼:html
<ul> <li title="t1">蘋果</li> <li>香蕉</li> <li>橘子</li> <li>葡萄</li> <li>草莓</li> </ul>
一、remove()方法:app
做用:從DOM中刪除全部匹配的元素,傳入的參數用於根據jQuery表達式來篩選元素。this
例如,刪除上圖中<ul>節點中的第二個<li>元素節點,jQuery代碼以下:code
$(document).ready(function() { $("ul li:eq(1)").remove(); });
當某個節點用remove()方法刪除後,該節點所包含的全部後代節點將同時被刪除。這個方法的返回值是一個指向已被刪除的節點的引用,所以能夠在之後再使用這些元素。下面的jQuery代碼說明元素用remove()方法刪除後,仍是能夠繼續使用的。
htm
var $li=$("ul li:eq(1)").remove(); $li.appendTo("ul"); //把刪除的節點又從新添加到<ul>元素裏
能夠直接使用appendTo()方法的特性來簡化以上代碼:對象
$("ul li:eq(1)").appendTo("ul");//appendTo()方法也能夠用來移動元素,移動元素時首先從文檔上刪除此元素,而後將該元素插入到文檔中的指定節點。
另外remove()方法也能夠經過傳遞參數來選擇性地刪除元素:事件
$("ul li").remove("li[title='t1']");
二、detach()方法:rem
detach()和remove()同樣,也是從DOM中去掉全部匹配的元素。但須要注意的是,這個方法不會匹配的元素從jQuery對象刪除,於是能夠在未來再使用這些匹配的元素。與remove()不一樣的是,全部綁定的事件、附件的數據等都會保留下來。文檔
經過下面的例子,能夠知道它與remove()方法的區別:it
$("ul li").click(function(){ alert($(this).html()); }) var $li=$("ul li:eq(1)").detach(); //刪除元素 $li.appendTo("ul"); //從新追加此元素,發現它以前綁定的事件還在,若是使用remove()方法刪除元素的話,那麼它以前把綁定的事件將失效;
三、empty()方法
嚴格來說,empty()方法並非刪除節點,而是清除節點,它能清空元素中的全部後代節點。
$("ul li:eq(1)").empty();//獲取第二個<li>元素節點後,清空此元素裏的內容,注意是元素裏。
運行後的結果爲:
當運行代碼後,第二個<li>元素的內容被清空了,只剩下<li>元素默認的符號"."。