.replaceWith( newContent )返回类型:jQuery
描述:把匹配的元素集合中每个元素替换成提供的新内容,并返回被删除的元素集合。
-
增补版本:1.2.replaceWith( newContent )
-
newContent要插入的内容。可能是HTML字符串、DOM元素、DOM元素的数组,或jQuery对象。
-
-
增补版本:1.4.replaceWith( function )
-
function类型:Function()一个函数,返回要替换匹配元素的集合的内容。
-
.replaceWith()
方法删除了来自DOM的内容,用一次调用插入它的位置的新内容考虑此DOM结构:
1
2
3
4
5
|
|
第二个内部<div>
可能被替换成指定的HTML:
1
|
|
这产生了下面的结构:
1
2
3
4
5
|
|
可以一次性把所有的class="inner"的<div>元素作为为目标:
1
|
|
这导致所有的它们都被替换掉了:
1
2
3
4
5
|
|
可以选中一个元素作为替换内容:
1
|
|
这产生了以下DOM结构:
1
2
3
4
|
|
此示例演示了通过把选中的元素从它的旧位置移到新位置,而不是通过克隆到新位置,使选中的元素替换掉目标元素。
.replaceWith()
方法,就像大多数jQuery方法,返回jQuery对象,从而可以连缀其它方法。然而,需要注意的是,它返回了原来的jQuery对象。此对象指的是从DOM中删除的元素,不是替换上去的新元素。
补充说明:
-
.replaceWith()
方法删除了所有的与被删除的节点相关联的数据以及事件处理函数。 -
在jQuery 1.9以前,
.replaceWith()
方法将在当前jQuery集合中尝试添加或修改节点,如果集合中的第一个节点没有连系到文档的话,在那种情况下,将返回一个新的jQuery集合,而不是原来的集合。此方法可能返回也可能不返回一个新结果,取决于它的参数的数目或联系性。自从jQuery 1.9以来,.after()
方法、.before()
方法和.replaceWith()
方法始终返回原来的未修改的集合。试图在没有父元素的节点上使用这些方法没有效果——也就是说,无论是集合还是它包含的节点都没有改变。
示例:
点击时,用包含了相同单词的<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
36
|
|
演示:
用粗体单词替换掉所有段落。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
|
演示:
点击时,用$()
函数选中已经存在于DOM中的<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
|
|
演示:
点击按钮时,用它的子<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
29
30
31
32
33
34
35
36
37
38
|
|