.find( selector )返回类型:jQuery
描述:取得匹配的元素的当前集合中每个元素的后代,用一个选择器、jQuery对象或元素来筛选。
-
增补版本:1.0.find( selector )
-
selector类型:Selector一个字符串,包含了选择器表达式,以匹配针对的元素
-
-
增补版本:1.6.find( element )
-
element元素或jQuery对象,用来匹配所针对的元素。
-
给定一个jQuery对象,代表一些DOM元素集合,.find()
方法允许我们在DOM树中搜索遍这些元素的后代元素,并根据匹配的元素构造一个新jQuery对象。.find()
方法和.children()
方法很相似,但是后者只能遍历DOM树中下面一个级别。
针对.find()
方法的第一个签名接受了一个选择器表达式,与可以传递给%()
函数的选择器表达式类型相同。必须通过测试来筛选元素,测试它们是否匹配此选择器。此表达 允许包含选择器,譬如> p
,它将找到所有的作为jQuery对象中某元素的子元素的段落。
请考虑一个网页,上面有基本的嵌套列表:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
|
如果从项目2开始,我们可以找到它内部的列表项:
1
|
|
这次调用的结果是项目A、B、1、2、3和C有了红色背景。哪怕项目2匹配选择器表达式,它也不包括在结果中;只有后代被考虑为用来匹配的候选项。
与大多数树遍历方法不一样的是,调用.find()
必须要用选择器表达式。如果我们需要检索所有的后代元素,我们可以传递通用选择器'*'
来实现这。
选择器上下文是用.find()
方法实现的;因此, $( "li.item-ii" ).find( "li" )
等同于$( "li", "li.item-ii" )
。
自从jQuery 1.6以来,我们还可以用一个给定的jQuery集合或元素来筛选选区。利用与上面相同的嵌套列表,如果我们开始于:
1
|
|
然后传入要查找的jQuery对象:
1
|
|
这将返回一个jQuery集合,它包含了作为项目2的后代的列表元素。
类似地,可以传入一个要查找的元素。
1
2
|
|
此调用的结果将是项目1有了红色背景。
示例:
从所有的段落开始,搜索后代<span>元素,与$( "p span" )
相同。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
|
演示:
一个选区,使用所有<span>标签的jQuery集合。只有<p>标签内部的<span>变成了红色,与此同时,其它依然是蓝色的。
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
|
|
演示:
给每个单词包围<span>,然后加上悬停,给带有字母t的单词加斜体。
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
39
40
41
42
43
44
45
46
47
48
49
|
|