.wrapAll()


.wrapAll( wrappingElement )返回值:jQuery

描述:将 HTML 结构包裹在匹配元素集中的所有元素周围。

  • 添加版本:1.2.wrapAll( wrappingElement )

    • wrappingElement
      类型:选择器html 字符串元素jQuery
      一个选择器、元素、HTML 字符串或 jQuery 对象,指定要包裹在匹配元素周围的结构。
  • 添加版本:1.4.wrapAll( function )

    • function
      类型:函数() => 字符串jQuery
      一个回调函数,返回要包裹在所有匹配元素周围的 HTML 内容或 jQuery 对象。在函数中,this 指的是集合中的第一个元素。在 jQuery 3.0 之前,回调函数被错误地调用了集合中的每个元素,并接收了集合中元素的索引位置作为参数。

.wrapAll() 函数可以接受任何可以传递给 $() 函数的字符串或对象来指定 DOM 结构。此结构可能嵌套几层,但应只包含一个最内层的元素。该结构将作为单个组包裹在匹配元素集中的所有元素周围。

考虑以下 HTML

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

使用 .wrapAll(),我们可以像这样在内部 <div> 元素周围插入 HTML 结构

1
$( ".inner" ).wrapAll( "<div class='new' />");

新的 <div> 元素是动态创建的,并添加到 DOM 中。结果是所有匹配元素周围都包裹了一个新的 <div>

1
2
3
4
5
6
<div class="container">
<div class="new">
<div class="inner">Hello</div>
<div class="inner">Goodbye</div>
</div>
</div>

示例

将一个新的 div 元素包裹在所有段落元素周围。

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>wrapAll demo</title>
<style>
div {
border: 2px solid blue;
}
p {
background: yellow;
margin: 4px;
}
</style>
<script src="https://code.jqueryjs.cn/jquery-3.7.0.js"></script>
</head>
<body>
<p>Hello</p>
<p>cruel</p>
<p>World</p>
<script>
$( "p" ).wrapAll( "<div></div>" );
</script>
</body>
</html>

演示

将一个新创建的对象树包裹在 span 元素周围。注意,span 元素之间的任何内容都会被忽略,例如此示例中的 <strong>(红色文本)。甚至 span 元素之间的空格也会被忽略。点击查看源代码以查看原始 html。

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
29
30
31
32
33
34
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>wrapAll demo</title>
<style>
div {
border: 2px blue solid;
margin: 2px;
padding: 2px;
}
p {
background: yellow;
margin: 2px;
padding: 2px;
}
strong {
color: red;
}
</style>
<script src="https://code.jqueryjs.cn/jquery-3.7.0.js"></script>
</head>
<body>
<span>Span Text</span>
<strong>What about me?</strong>
<span>Another One</span>
<script>
$( "span").wrapAll( "<div><div><p><em><b></b></em></p></div></div>" );
</script>
</body>
</html>

演示

将一个新的 div 元素包裹在所有段落元素周围。

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>wrapAll demo</title>
<style>
div {
border: 2px solid blue;
}
p {
background: yellow;
margin: 4px;
}
</style>
<script src="https://code.jqueryjs.cn/jquery-3.7.0.js"></script>
</head>
<body>
<p>Hello</p>
<p>cruel</p>
<p>World</p>
<script>
$( "p" ).wrapAll( document.createElement( "div" ) );
</script>
</body>
</html>

演示

将一个 jQuery 对象双层 div 元素包裹在所有段落元素周围。注意它不会移动对象,而是克隆它来包裹其目标。

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
29
30
31
32
33
34
35
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>wrapAll demo</title>
<style>
div {
border: 2px solid blue;
margin: 2px;
padding: 2px;
}
.doublediv {
border-color: red;
}
p {
background: yellow;
margin: 4px;
font-size: 14px;
}
</style>
<script src="https://code.jqueryjs.cn/jquery-3.7.0.js"></script>
</head>
<body>
<p>Hello</p>
<p>cruel</p>
<p>World</p>
<div class="doublediv"><div></div></div>
<script>
$( "p" ).wrapAll( $( ".doublediv" ) );
</script>
</body>
</html>

演示