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 + ", ");
    });
});