JSFiddle - React, Tailwind, and code Playground

by webviper

HTML

<div class="container">
    <div class="el">
        <div class="el">
            <div class="el">
                <div class="el">
                    <div class="el">
                        <div class="el">
                            <div class="el">
                                <div class="el"></div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="el">
                    <div class="el">
                        <div class="el">
                            <div class="el">
                                <div class="el"></div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

CSS

.container {
    float: left;
    width: 800px;
    position: absolute;
    height: 400px;
    display: block;
    content: " ";
}
.el {
    border: 1px solid #000;
    position: relative;
    display: block;
    min-width: 30px;
    min-height: 30px;
    max-width: 800px;
    margin: 30px;
    background: #FFF;
}
.red {
    background-color: #F00;
}
.black {
    background-color: #000;
}

JavaScript

$('.container').click(function(e){
    var $elem = $(e.target);
    var n = $elem.find('div').length;
    var color_add = 'red';
    var color_remove = 'black';
    
    for (var i = n; i--;) {
        $elem.children().addClass(color_add).removeClass(color_remove);
        $elem = $elem.children();
        color_add = (color_add == 'red') ? 'black' : 'red';
        color_remove = (color_remove == 'red') ? 'black' : 'red';
    }   
});