.empty()


.empty()傳回: jQuery

說明: 移除 DOM 中與所選元素相符的子節點。

  • 新增版本: 1.0.empty()

    • 此方法不接受任何參數。

此方法不僅會移除子元素(和其他後代元素),還會移除與所選元素相符的任何文字。這是因為根據 DOM 規範,元素中的任何文字字串都被視為該元素的子節點。請考慮以下 HTML

1
2
3
4
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>

我們可以針對任何元素進行移除

1
$( ".hello" ).empty();

這將導致 Hello 文字被刪除的 DOM 結構

1
2
3
4
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>

如果 <div class="hello"> 內有任何數量的巢狀元素,它們也會被移除。

為了避免記憶體外洩,jQuery 會在移除子元素本身之前,先移除其他結構,例如資料和事件處理常式。

如果您想要移除元素而不破壞其資料或事件處理常式(以便它們可以在稍後重新加入),請改用 .detach()

範例

從所有段落中移除所有子節點(包括文字節點)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>empty demo</title>
<style>
p {
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
<p>
Hello, <span>Person</span> <em>and person</em>.
</p>
<button>Call empty() on above paragraph</button>
<script>
$( "button" ).on( "click", function() {
$( "p" ).empty();
} );
</script>
</body>
</html>

示範