jQuery如何刪除元素節點

antzone發表於2017-03-06

在jquery中,有多個刪除元素節點的函式,下面簡單的羅列一下。

要操作的結構:

[HTML] 純文字檢視 複製程式碼
<ul>
  <li>螞蟻部落一</li>
  <li>螞蟻部落二</li>
  <li>螞蟻部落三</li>
</ul>

一.使用remove()函式:

[JavaScript] 純文字檢視 複製程式碼
$("li:eq(1)").remove();

以上程式碼可以將第二個li元素刪除。

特別說明:使用remove()函式刪除元素節點,能夠將元素的所有後代節點同時刪除,此函式的返回值是一個指向被刪除元素節點的引用,看下面的程式碼例項:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> 
<script type="text/javascript">    
$(document).ready(function(){
  $("ul").append($("li:eq(1)").remove());
})
</script>
</head>
<body>
<ul>
  <li>螞蟻部落一</li>
  <li>螞蟻部落二</li>
  <li>螞蟻部落三</li>
</ul>
</body>
</html>

以上程式碼可以將第二個li元素挪動到ul元素的結尾,充分說明了返回值是一個指向被刪除元素節點的引用。

二.使用detach()函式:

[JavaScript] 純文字檢視 複製程式碼
$("li:eq(1)").detach();

 和remove()函式相同,同樣能夠刪除匹配,但是這個函式不會把匹配的元素從jQuery物件中刪除,因此可以在將來再使用這些匹配的元素。與remove()不同的是,所有繫結的事件、附加的資料都會保留下來。 

三.使用empty()函式:

[JavaScript] 純文字檢視 複製程式碼
$("li:eq(1)").empty();

顧名思義,此函式並不是刪除節點,而是清空匹配的元素節點,也就是說將匹配元素的所有子節點清空。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> 
<script type="text/javascript">    
$(document).ready(function(){
  $("li:eq(1)").empty();
})
</script>
</head>
<body>
<ul>
  <li>螞蟻部落一</li>
  <li>螞蟻部落二</li>
  <li>螞蟻部落三</li>
</ul>
</body>
</html>

由以上程式碼可以看出,此函式只是清空的匹配元素的子節點。

相關文章