JavaScript’s Element.closest()
method matches the Element
and its ancestors against a CSS selector and returns the first matching element or null
.
Syntax
Node.closest(parameter);
Parameters
A CSS selector string to match the element and its ancestors against.
Return value
The closest matching element if there is one, otherwise null
.
Exceptions
SyntaxError
DOMException
Thrown if the parameter is not a valid CSS selector string.
Examples
Here is an example of using the JavaScript closest()
method.
Suppose we have the following HTML elements:
<div class="container-1">
<div class="container-2">
<p>JavaScript is such an interesting programming language.</p>
</div>
</div>
How can we select the closest ancestor of the p
element whose class
attribute starts with the string “container”?
Well, we can select the p
element with the querySelector()
method and call the closest()
method with the CSS selector string div[class^="container"]
:
let p = document.querySelector('p');
let container = p.closest('div[class^="container"]');
console.log(container.className);
You should now be able to see the value of the selected element’s class
attribute (“container-2”) in the browser’s console.
Browser compatibility
Chrome
|
Edge
|
Firefox
|
Internet Explorer
|
Opera
|
Safari
|
Chrome (Android)
|
Firefox (Android)
|
Opera (Android)
|
Safari (iOS)
|
Samsung Internet
|
WebView (Android)
|
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
closest() |
41 | 15 | 35 | 28 | 6 | 41 | 35 | 28 | 9 | 4.0 | 41 |