In JavaScript è possibile reperire il genitore più prossimo di un dato elemento.
La soluzione è la seguente:
'use strict';
const closestParent = (el, selector, includeSelf = false) => {
let parent = el.parentNode;
if (includeSelf && el.matches(selector)) {
return el;
}
while (parent && parent !== document.body) {
if (parent.matches && parent.matches(selector)) {
return parent;
} else if (parent.parentNode) {
parent = parent.parentNode;
} else {
return null;
}
}
return null;
};