UNPKG

719 BJavaScriptView Raw
1/**
2 * Module dependencies.
3 */
4
5var query = require('query');
6
7/**
8 * Element prototype.
9 */
10
11var proto = Element.prototype;
12
13/**
14 * Vendor function.
15 */
16
17var vendor = proto.matches
18 || proto.webkitMatchesSelector
19 || proto.mozMatchesSelector
20 || proto.msMatchesSelector
21 || proto.oMatchesSelector;
22
23/**
24 * Expose `match()`.
25 */
26
27module.exports = match;
28
29/**
30 * Match `el` to `selector`.
31 *
32 * @param {Element} el
33 * @param {String} selector
34 * @return {Boolean}
35 * @api public
36 */
37
38function match(el, selector) {
39 if (vendor) return vendor.call(el, selector);
40 var nodes = query.all(selector, el.parentNode);
41 for (var i = 0; i < nodes.length; ++i) {
42 if (nodes[i] == el) return true;
43 }
44 return false;
45}