UNPKG

reakit-utils

Version:

Reakit utils

25 lines (20 loc) 584 B
import { matches } from './matches.js'; /** * Ponyfill for `Element.prototype.closest` * * @example * import { closest } from "reakit-utils"; * * closest(document.getElementById("id"), "div"); * // same as * document.getElementById("id").closest("div"); */ function closest(element, selectors) { if ("closest" in element) return element.closest(selectors); do { if (matches(element, selectors)) return element; element = element.parentElement || element.parentNode; } while (element !== null && element.nodeType === 1); return null; } export { closest };