本章節(jié)主要介紹了jQuery中dom操作的三種刪除節(jié)點的方法,即remove(),detach()和empty(),并附上示例代碼,非常實用,這里推薦給小伙伴們。
下面示例可能用到如下HTML代碼:
代碼如下:
<ul>
<li title="t1">蘋果</li>
<li>香蕉</li>
<li>橘子</li>
<li>葡萄</li>
<li>草莓</li>
</ul>
1、remove()方法:
作用:從DOM中刪除所有匹配的元素,傳入的參數(shù)用于根據(jù)jQuery表達式來篩選元素。
例如,刪除上圖中<ul>節(jié)點中的第二個<li>元素節(jié)點,jQuery代碼如下:
代碼如下:
$(document).ready(function() {
$("ul li:eq(1)").remove();
});
當(dāng)某個節(jié)點用remove()方法刪除后,該節(jié)點所包含的所有后代節(jié)點將同時被刪除。這個方法的返回值是一個指向已被刪除的節(jié)點的引用,因此可以在以后再使用這些元素。下面的jQuery代碼說明元素用remove()方法刪除后,還是可以繼續(xù)使用的。
代碼如下:
var $li=$("ul li:eq(1)").remove();
$li.appendTo("ul"); //把刪除的節(jié)點又重新添加到<ul>元素里
可以直接使用appendTo()方法的特性來簡化以上代碼:
代碼如下:
$("ul li:eq(1)").appendTo("ul");//appendTo()方法也可以用來移動元素,移動元素時首先從文檔上刪除此元素,然后將該元素插入到文檔中的指定節(jié)點。
另外remove()方法也可以通過傳遞參數(shù)來選擇性地刪除元素:
代碼如下:
$("ul li").remove("li[title='t1']");
2、detach()方法:
detach()和remove()一樣,也是從DOM中去掉所有匹配的元素。但需要注意的是,這個方法不會匹配的元素從jQuery對象刪除,因而可以在將來再使用這些匹配的元素。與remove()不同的是,所有綁定的事件、附件的數(shù)據(jù)等都會保留下來。
通過下面的例子,可以知道它與remove()方法的區(qū)別:
代碼如下:
$("ul li").click(function(){
alert($(this).html());
})
var $li=$("ul li:eq(1)").detach(); //刪除元素
$li.appendTo("ul"); //重新追加此元素,發(fā)現(xiàn)它之前綁定的事件還在,如果使用remove()方法刪除元素的話,那么它之前把綁定的事件將失效;
3、empty()方法
嚴(yán)格來講,empty()方法并不是刪除節(jié)點,而是清除節(jié)點,它能清空元素中的所有后代節(jié)點。
代碼如下:
$("ul li:eq(1)").empty();//獲取第二個<li>元素節(jié)點后,清空此元素里的內(nèi)容,注意是元素里。
運行后的結(jié)果為:
當(dāng)運行代碼后,第二個<li>元素的內(nèi)容被清空了,只剩下<li>元素默認(rèn)的符號"."。
以上就是本文所述的全部內(nèi)容了,希望大家能夠喜歡。
更多信息請查看IT技術(shù)專欄