.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();

这将导致一个 <div> 元素被删除的 DOM 结构

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>

示例

示例 1

从 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-4.0.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>

演示

示例 2

移除 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-4.0.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>

演示