index.js 478 B

1234567891011121314151617181920212223
  1. /**
  2. * Module dependencies
  3. */
  4. var matches = require('dom-matches');
  5. /**
  6. * @param element {Element}
  7. * @param selector {String}
  8. * @param context {Element}
  9. * @return {Element}
  10. */
  11. module.exports = function (element, selector, context) {
  12. context = context || document;
  13. // guard against orphans
  14. element = { parentNode: element };
  15. while ((element = element.parentNode) && element !== context) {
  16. if (matches(element, selector)) {
  17. return element;
  18. }
  19. }
  20. };