2014-01-08 3 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'); 
}); 
관련 문제