jQuery closest() 方法
示例
返回 <span> 的第一个祖先元素,该元素为 <ul> 元素
$(document).ready(function(){
$("span").closest("ul").css({"color": "red", "border": "2px solid red"});
});
结果
body(曾祖父级祖先)div(祖父级祖先)ul(第二个祖先 - 第二个祖父级祖先)ul(第一个祖先 - 第一个祖父级祖先)- li(直接父级) span
亲自尝试 »
定义和用法
closest() 方法返回所选元素的第一个祖先元素。
祖先元素是指父级、祖父级、曾祖父级等等。
DOM 树:此方法从当前元素向上遍历,一直到文档的根元素(<html>),以查找 DOM 元素的第一个祖先元素。
此方法类似于 parents(),因为它们都向上遍历 DOM 树。区别如下
closest()
- 从当前元素开始
- 向上遍历 DOM 树并返回第一个(单个)与传递的表达式匹配的祖先元素
- 返回的 jQuery 对象包含零个或一个元素
parents()
- 从父元素开始
- 向上遍历 DOM 树并返回所有与传递的表达式匹配的祖先元素
- 返回的 jQuery 对象包含零个或多个元素
其他相关方法
- parent() - 返回所选元素的直接父元素
- parentsUntil() - 返回两个给定参数之间的所有祖先元素
语法
返回所选元素的第一个祖先元素
$(选择器).closest(过滤器)
使用 DOM 上下文返回第一个祖先元素,以便在其中查找 DOM 树
$(选择器).closest(过滤器,上下文)
参数 | 描述 |
---|---|
过滤器 | 必需。指定一个选择器表达式、元素或 jQuery 对象,以缩小祖先搜索范围 |
上下文 | 可选。一个 DOM 元素,在其中可以找到匹配的元素 |
亲自尝试 - 示例
返回 <span> 的第一个祖先元素,该元素为 <span> 元素
因为此方法从当前元素开始,所以搜索 <span> 的第一个 <span> 将返回 <span>。
传入一个 DOM 元素作为上下文,在其中搜索第一个祖先元素。
使用两个参数传入一个 DOM 元素作为上下文,在其中搜索第一个 <ul> 元素。