用法一
.closest( selector ) => jQuery
.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匹配元素的元素。
-
给定一个表示一组 DOM 元素的 jQuery 对象,.closest()
方法在 DOM 树中搜索这些元素及其祖先,并从匹配的元素构造一个新的 jQuery 对象。
和 .parents()
.closest()
方法的相似之处在于它们都向上遍历 DOM 树。两者之间的差异虽然微妙,但意义重大:
.closest()
|
.parents() |
---|---|
从当前元素开始 | 从父元素开始 |
向上移动 DOM 树,直到找到匹配的选择器 | 沿着 DOM 树向上移动到文档的根元素,将每个祖先元素添加到临时集合中;然后,如果提供了选择器,它会根据选择器过滤该集合 |
返回的 jQuery 对象包含原始集合中每个元素的零个或一个元素,按文档顺序排列 | 返回的 jQuery 对象包含原始集合中每个元素的零个或多个元素,以相反的文档顺序 |
|
假设我们从项目 A 开始搜索 <ul>
元素:
|
这将改变 level-2 <ul>
的颜色,因为它是在 DOM 树上行进时第一次遇到的。
假设我们改为搜索 <li>
元素:
|
这将改变列表项 A 的颜色。.closest()
方法在向上 DOM 树之前开始搜索 with the element itself
,并在项 A 匹配选择器时停止。
我们可以传入一个 DOM 元素作为搜索最近元素的上下文。
|
这将改变 2 级 <ul>
的颜色,因为它既是列表项 A 的第一个 <ul>
祖先,也是列表项 II 的后代。但是,它不会更改级别 1 <ul>
的颜色,因为它不是列表项 II 的后代。
例子:
展示如何使用最接近的方式完成事件委托。当单击它或其后代时,最近的列表元素会切换为黄色背景。
|
演示:
将 jQuery 对象传递给最近的对象。当单击它或其后代时,最近的列表元素会切换为黄色背景。
|
演示:
用法二
.closest( selectors [, context ] ) => Array
.closest( selectors [, context ] ) => Array
相关用法
- JQuery .clone()用法及代码示例
- JQuery .click()用法及代码示例
- JQuery .clearQueue()用法及代码示例
- JQuery .contextmenu()用法及代码示例
- JQuery .contents()用法及代码示例
- JQuery UI .cssClip()用法及代码示例
- JQuery .context用法及代码示例
- JQuery .css()用法及代码示例
- JQuery .children()用法及代码示例
- JQuery .change()用法及代码示例
- JQuery .jquery用法及代码示例
- JQuery .scroll()用法及代码示例
- JQuery .add()用法及代码示例
- JQuery .undelegate()用法及代码示例
- JQuery .load()用法及代码示例
- JQuery .empty()用法及代码示例
- JQuery UI .labels()用法及代码示例
- JQuery UI .addClass()用法及代码示例
- JQuery UI .toggleClass()用法及代码示例
- JQuery .removeAttr()用法及代码示例
- JQuery .addClass()用法及代码示例
- JQuery .next()用法及代码示例
- JQuery UI .hide()用法及代码示例
- JQuery .promise()用法及代码示例
- JQuery .trigger()用法及代码示例
注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .closest()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。