内容:
.closest( selector )返回类型:jQuery
描述:针对集合中的每个元素,通过测试元素本身,以及在DOM树中遍历遍它的祖先,来找到第一个匹配选择器的元素。
-
增补版本:1.3.closest( selector )
-
selector类型:Selector一个字符串,包含了选择器表达式,以匹配针对的元素
-
-
增补版本:1.4.closest( selector [, context ] )
-
增补版本:1.6.closest( selection )
-
selection类型:jQuery一个用来匹配所针对的元素的jQuery对象。
-
-
增补版本:1.6.closest( element )
-
element类型:Element一个用来匹配所针对的元素的元素。
-
给定一介jQuery对象,代表一些DOM元素,.closest()
方法搜索遍这些元素以及它们在DOM树中的祖先元素,并从匹配元素里构造一个新的jQuery对象。.parents()
方法和.closest()
方法很相信,它们都是向上遍历DOM树。两者的区别虽然微妙,但也很明显:
.closest() | .parents() |
---|---|
从当前元素开始 | 从父元素开始 |
向上遍历DOM树,直到它找到所提供的选择器所匹配的元素经。 | 向上遍历DOM树,直到文档的根元素,把每个祖先元素添加到临时集合中,然后如果提供了一个选择器的话,基于这个选择器筛选该集合。 |
返回的jQuery对象针对原始集合中的每个元素,包含零个或一个元素,按文档顺序排序。 | 返回的jQuery对象针对原始集合中的每个元素,包含零个或多个元素,按逆文档顺序排序。 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
|
假设我们从项目A开始对<ul>
元素实施了一个搜索:
1
2
3
|
|
这将改变第二级<ul>
的字色,因为在向上遍历DOM树时,它是第一个遭遇的。
假设我们改而搜索一个<li>
元素:
1
2
3
|
|
这将改变列表项A的字色。.closest()
方法在向上处理DOM树之前,从自身元素开始它的搜索,当遇到匹配选择器的项目A时就停止了。
我们可以传入一个DOM元素,作为要搜索最接近的元素的上下文。
1
2
3
4
5
6
7
|
|
这将改变第二级<ul>
的颜色,累为它既是列表项A的第一个<ul>
祖先,也是列表项II的一个祖先。然而,它将不会改变第一级<ul>
的颜色,因为它不是列表项II的祖先。
示例:
显示了如何对最靠近元素作事件派遣。最靠近列表元素当它或它的后代被点击时切换到黄色背景。
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
|
|
演示:
把一个jQuery对象传递给最靠近的。最靠近的列表元素当它或它的后代被点击时切换到黄色背景。
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
|
|
演示:
.closest( selectors [, context ] )返回类型:Arrayversion deprecated: 1.7, removed: 1.8
描述:取得所有元素和选择器的数组,匹配针对当前元素向上遍历DOM树。
此签名(仅仅是此签名!)自从jQuery 1.7以来已经被淘汰了,在jQuery 1.8中就被删除了。它主要是为了让插件作者在内部使用。