.insertBefore( target )返回: jQuery
描述: 将匹配元素集合中的每个元素插入到目标元素之前。
-
版本添加: 1.0.insertBefore( target )
-
target一个选择器、元素、元素数组、HTML 字符串或 jQuery 对象;匹配的元素集合将插入到此参数指定的元素之前。
-
.before() 和 .insertBefore() 方法执行相同的任务。主要的区别在于语法——具体来说,是内容和目标的放置位置。对于 .before(),方法前的选择器表达式是内容插入到的容器。而对于 .insertBefore(),内容在方法之前,可以作为选择器表达式或动态创建的标记,并插入到目标容器之前。
考虑以下 HTML
|
1
2
3
4
5
|
|
我们可以创建内容并将其一次插入到多个元素之前。
|
1
|
|
每个内部的 <div> 元素都会获得这个新内容
|
1
2
3
4
5
6
7
|
|
我们也可以选择页面上的一个元素并将其插入到另一个元素之前。
|
1
|
|
如果以这种方式选择的元素被插入到 DOM 中其他位置的单个位置,它将被移动到目标之前(不会克隆),并返回由插入的元素组成的新集合。
|
1
2
3
4
5
|
|
但是,如果有多个目标元素,将为除第一个目标之外的每个目标创建插入元素的克隆副本,并返回该新集合(原始元素加上克隆)。
在 jQuery 1.9 之前, 插入到单个元素的情况不会创建新集合,而是返回原始集合,这使得在使用未知数量的元素时,难以可靠地使用 .end() 方法。
附加说明
- 根据设计,任何接受 HTML 字符串的 jQuery 构造函数或方法 —— jQuery()、.append()、.after() 等 —— 都有可能执行代码。这可能通过注入 script 标签或使用执行代码的 HTML 属性(例如
<img onload="">)发生。请勿使用这些方法插入从不受信任的来源(如 URL 查询参数、cookie 或表单输入)获取的字符串。这样做可能会引入跨站脚本 (XSS) 漏洞。在将内容添加到文档之前,请移除或转义任何用户输入。 - jQuery 官方并不支持 SVG。在 SVG 文档上使用 jQuery 方法可能会导致意外行为,除非该方法有明确的文档说明。截至 jQuery 3.0,支持 SVG 的方法示例包括
addClass和removeClass。
示例
将所有段落插入到 id 为 "foo" 的元素之前。与 $( "#foo" ).before( "p" ) 相同。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
|