@sgalinski/responsive-side-menu
Version:
A simple and extendable slide-in menu
31 lines (24 loc) • 762 B
JavaScript
;
export default class util {
static parents(_element, _selector = null) {
let elements = [];
// eslint-disable-next-line no-param-reassign
while ((_element = _element.parentElement) !== null) {
if (_element.nodeType !== Node.ELEMENT_NODE) {
// eslint-disable-next-line no-continue
continue;
}
if (_selector !== null && selectorMatches(_element, _selector)) {
elements.push(_element);
}
}
function selectorMatches(el, selector) {
let p = Element.prototype;
let f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function(s) {
return [].indexOf.call(document.querySelectorAll(s), this) !== -1;
};
return f.call(el, selector);
}
return elements;
}
}