元素: closest() 方法
语法
js
closest(selectors)
参数
返回值
与 selectors
匹配的最近的祖先 Element
或自身。如果不存在这样的元素,则为 null
。
异常
SyntaxError
DOMException
-
如果
selectors
不是有效的 CSS 选择器,则会抛出该异常。
示例
HTML
html
<article>
<div id="div-01">
Here is div-01
<div id="div-02">
Here is div-02
<div id="div-03">Here is div-03</div>
</div>
</div>
</article>
JavaScript
js
const el = document.getElementById("div-03");
// the closest ancestor with the id of "div-02"
console.log(el.closest("#div-02")); // <div id="div-02">
// the closest ancestor which is a div in a div
console.log(el.closest("div div")); // <div id="div-03">
// the closest ancestor which is a div and has a parent article
console.log(el.closest("article > div")); // <div id="div-01">
// the closest ancestor which is not a div
console.log(el.closest(":not(div)")); // <article>
规范
规范 |
---|
DOM 标准 # ref-for-dom-element-closest① |
浏览器兼容性
BCD 表格仅在浏览器中加载
兼容性说明
- 在 Edge 15-18 中,
document.createElement(tagName).closest(tagName)
如果元素未首先连接到上下文对象(直接或间接),例如在正常 DOM 的情况下连接到Document
对象,则将返回null
。
另请参阅
- CSS 选择器 模块
- 其他采用选择器的
Element
方法:Element.querySelector()
,Element.querySelectorAll()
,以及Element.matches()
。