UNPKG

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