在两个类上以相同的方式随机化

时间:2014-01-08 18:01:12

标签: jquery css html random parent-child

我正在尝试通过this community :)来实现我已经完成的一些(较小的)一半 - 但不知道如何做其余的事情。

我有div的多个实例。对于每个实例,我从列表中随机添加一个类(更改一些设置,如字体,颜色等)。目前我正在使用下面的功能。此功能还可以避免两个相同的类一个接一个地添加。

var classes = ['blue', 'yellow', 'lightorange', 'violet'];
var prevClass = "";
$('.randomizeddiv').each(function() {
    var classes2 = [];
    for (var i = 0; i < classes.length; i++) {
        if (classes[i] !== prevClass) {
            classes2.push(classes[i]);
        }
    }
    $(this).addClass(prevClass = classes2[Math.floor(Math.random()*classes2.length)]);
});

现在我有另一个div具有不同的类(也是多个实例),我想根据前一个更改的方式进行更改。让我说我的第一个随机div添加了类“蓝色”我想让一个child-div转为“blue2”

    <div class="randomizeddiv blue> 
        </div class="secondrandom blue2"></div>
    </div>

    <div class="randomizeddiv yellow> 
        </div class="secondrandom yellow2"></div>
    </div>

    <div class="randomizeddiv violet> 
        </div class="secondrandom violet2"></div>
    </div>

1 个答案:

答案 0 :(得分:0)

只需在循环中为子项添加一个类吗?

var classes = ['blue', 'yellow', 'lightorange', 'violet'];
var prevClass = "";

$('.randomizeddiv').each(function() {
    var classes2 = [];
    for (var i = 0; i < classes.length; i++) {
        if (classes[i] !== prevClass) {
            classes2.push(classes[i]);
        }
    }

    prevClass = classes2[Math.floor(Math.random()*classes2.length)]

    $(this).addClass(prevClass).find('.secondrandom').addClass(prevClass + '2');
});