.find( selector )返回: jQuery
描述: 通过一个选择器,jQuery对象,或元素过滤,得到当前匹配的元素集合中每个元素的后代。
-
添加的版本: 1.0.find( selector )
-
selector类型: Selector一个用于匹配元素的选择器字符串。
-
-
添加的版本: 1.6.find( jQuery object )
-
jQuery object类型: Object现有匹配当前元素集合的jQuery对象。
-
-
添加的版本: 1.6.find( element )
-
element类型: Element一个匹配当前元素集合的元素。
-
如果一个jQuery对象表示一个DOM元素的集合, .find()
方法允许我们能够通过查找DOM树中的这些元素的后代元素,匹配的元素将构造一个新的jQuery对象。.find()
和.children()
方法是相似的,但后者只是再DOM树中向下遍历一个层级(注:就是只查找子元素,而不是后代元素)。
.find()
方法还可以接受一个选择器表达式,该选择器表达式可以是任何可传给$()
函数的选择器表达式。如果紧随兄弟匹配选择器,它将被保留在新构建的jQuery对象中;否则,它被排除在外。
考虑一个页面上的一个简单的列表:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
|
如果我们从item II 开始,我们可以找到它里面的清单项目:
1
|
|
该调用的结果是II项的A,B,1,2,3,和C的背景变为红色,尽管item II匹配选择表达式,它不包括在结果中; 只有它的后代被认为是匹配的候选元素。
和其他的遍历方法不同,调用.find()
需要选择器表达式参数。如果我们需要检索所有的后代元素,我们可以通过在普遍选择器'*'
来完成。
选择器上下文 通过 .find()
方法实现, $('li.item-ii').find('li')
等价于 $('li', 'li.item-ii')
.
在 jQuery 1.6中, 我们还可以用给定的jQuery集合或元素来过滤元素。在如上所述相同的嵌套列表中,如果我们开始:
1
|
|
然后通过这个jQuery对象查找:
1
|
|
这将返回一个只包含列表元素的jQuery集合,它们是项目II的后代。
同样,一个元素可能也可以通过查找:
1
2
|
|
该调用的结果将是对item 1 的背景替换为红色。
例子:
Example: 开始搜索段落所有后代的span元素,和$("p span")一样
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
|
Demo:
Example: 一个选择使用的所有span标签jQuery集合。只有spans在P标签更改为红色,而另一些是蓝色。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
|
Demo:
Example: 为每个单词添加 span 标签,并为 span 标签添加 hover 事件,并且将含有 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
|
|