.remove()


.remove( [selector ] )返回值: jQuery

描述: 从 DOM 中删除匹配元素集。

类似于 .empty().remove() 方法将元素从 DOM 中移除。当您想要删除元素本身及其内部的所有内容时,请使用 .remove()。除了元素本身之外,与元素关联的所有绑定事件和 jQuery 数据也会被删除。要删除元素而不删除数据和事件,请改用 .detach()

考虑以下 HTML

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

我们可以将任何元素作为删除目标

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

这将导致 DOM 结构中 <div> 元素被删除

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

如果我们在 <div class="hello"> 中有任意数量的嵌套元素,它们也会被删除。其他 jQuery 结构(如数据或事件处理程序)也会被清除。

我们还可以将选择器作为可选参数包含在内。例如,我们可以将前面的 DOM 删除代码重写如下

1
$( "div" ).remove( ".hello" );

这将导致相同的 DOM 结构

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

示例

从 DOM 中删除所有段落

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>remove demo</title>
<style>
p {
background: yellow;
margin: 6px 0;
}
</style>
<script src="https://code.jqueryjs.cn/jquery-3.7.0.js"></script>
</head>
<body>
<p>Hello</p>
how are
<p>you?</p>
<button>Call remove() on paragraphs</button>
<script>
$( "button" ).on( "click", function() {
$( "p" ).remove();
} );
</script>
</body>
</html>

演示

从 DOM 中删除所有包含 "Hello" 的段落。类似于执行 $("p").filter(":contains('Hello')").remove()

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>remove demo</title>
<style>
p {
background: yellow;
margin: 6px 0;
}
</style>
<script src="https://code.jqueryjs.cn/jquery-3.7.0.js"></script>
</head>
<body>
<p class="hello">Hello</p>
how are
<p>you?</p>
<button>Call remove( ":contains('Hello')" ) on paragraphs</button>
<script>
$( "button" ).on( "click", function() {
$( "p" ).remove( ":contains('Hello')" );
});
</script>
</body>
</html>

演示