/** * @fileoverview Find parent element recursively * @author NHN FE Development Lab */ 'use strict'; var matches = require('./matches'); /** * Find parent element recursively * @param {HTMLElement} element - base element to start find * @param {string} selector - selector string for find * @returns {HTMLElement} - element finded or null * @memberof module:domUtil */ function closest(element, selector) { var parent = element.parentNode; if (matches(element, selector)) { return element; } while (parent && parent !== document) { if (matches(parent, selector)) { return parent; } parent = parent.parentNode; } return null; } module.exports = closest;