index.js 696 B

123456789101112131415161718192021222324252627282930
  1. 'use strict';
  2. var proto = typeof Element !== 'undefined' ? Element.prototype : {};
  3. var vendor = proto.matches
  4. || proto.matchesSelector
  5. || proto.webkitMatchesSelector
  6. || proto.mozMatchesSelector
  7. || proto.msMatchesSelector
  8. || proto.oMatchesSelector;
  9. module.exports = match;
  10. /**
  11. * Match `el` to `selector`.
  12. *
  13. * @param {Element} el
  14. * @param {String} selector
  15. * @return {Boolean}
  16. * @api public
  17. */
  18. function match(el, selector) {
  19. if (!el || el.nodeType !== 1) return false;
  20. if (vendor) return vendor.call(el, selector);
  21. var nodes = el.parentNode.querySelectorAll(selector);
  22. for (var i = 0; i < nodes.length; i++) {
  23. if (nodes[i] == el) return true;
  24. }
  25. return false;
  26. }