Wpis z mikrobloga

#jquery #javascript

Pytanie.

var classes = ["large-4", "large-3", "large-5"];

$(".featured").children().each(function(){
$(this).addClass(classes[~~(Math.random()*classes.length)]);
});

Działa spoko, tylko chciałbym jedną modyfikację. Założenie jest takie, że każdy element z arraya może być użyty tylko raz i każdy kolejny musi być inny.
Czyli child elements .featured będą np takie:
div class="large-4"
div class="large-5"
div class="large-3"

Pomoże ktoś?
  • 3
@m_bielawski: W sumie znalazłem już coś co działa:

function randOrder() {
return ( Math.round(Math.random())-0.5 );
}
var classes = [ 'large-4', 'large-3', 'large-5' ];
classes.sort( randOrder );
$('.featured').children().each(function(i, val) {
$(this).addClass(classes[i]);
});