2014-01-08 2 views
0

Я пытаюсь добиться чего-то из того, что у меня есть (меньше), наполовину сделанного благодаря 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 был добавлен класс «синий» Я хочу, чтобы ребенок-ДИВ, чтобы превратить «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> 

ответ

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'); 
}); 
Смежные вопросы