JSFiddle - React, Tailwind, and code Playground
HTML
<div id="teste">
<section id="ele-section1">
<div data-section="1">
<div class="not_this">
<div>
<div class="ele2">
<div id="ele3">
<div class="ele4">
<div class="child">
<!-- Conteúdo -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
JavaScript
var getParents = (function() {
function match(el, classes) {
return classes.filter(function(css) {
return el.matches(css);
}).length != 0;
}
return function(from, not /*, not2, etc...*/ ) {
var args = [].slice.call(arguments);
var el = document.querySelector(args.shift());
var parents = [];
while (el = el.parentElement) {
if (!match(el, args)) parents.push(el);
}
return parents;
}
})();
console.log(getParents('.ele4', '.not_this', '#teste', 'body', 'html')); // [div#ele3, div.ele2, div, div, section#ele-section1]