JSFiddle - React, Tailwind, and code Playground
by jitter
HTML
<div id="box0" class="mybox">
<div>
<div id="box1" class="mybox">
<div id="box2" class="mybox"></div>
</div>
</div>
<div id="box3" class="mybox">
<div id="box4" class="mybox"></div>
</div>
<div>
<div>
<div id="box5" class="mybox"></div>
</div>
</div>
</div>
<div id="output"></div>
JavaScript
(function($) {
$.fn.closestDown = function(selector) {
var selection = [];
var query = function() {
this.children().each(function() {
var $this = $(this);
if ($this.is(selector)) {
selection.push(this);
}
else {
query.call($this);
}
});
};
query.call(this);
return this.pushStack(selection, "closestDown", selector);
};
})(jQuery);
$(function() {
$("#output").append("closestDown to 'box': ");
$("#box0").closestDown(".mybox").each(function() {
$("#output").append(this.id + ", ");
});
});