В коде есть некоторые ошибки.
Это, вероятно, что вы хотели сделать:
// V1 : Basic
var imgColours = ['#FCCF94', '#C4C9E5', '#ADE3D6'];
for (var i=0; i < imgColours.length; i++) {
$('.img:eq('+i+')').css({backgroundColor: imgColours[i]});
}
Но если вы хотите, чтобы получить случайный цвет из вашего массива, для любого числа дивы, а также оптимизации кода JQuery немного для лучшей производительности :
// V2 : random colors
var $imgs = $('#boxes1').find('.box'),
imgsCount = $imgs.length,
coloursCount = imgColours.length;
for (var i=0; i < imgsCount; i++) {
var rnd = Math.floor(Math.random() * coloursCount),
color = imgColours[rnd];
$imgs.eq(i).css({backgroundColor: color});
}
Или, если вы хотите проходной цвета после заказа массива, просто изменить цикл:
// V3 : sequential colors
// Add V2 variables here
for (var i=0; i < imgsCount; i++) {
var color = imgColours[i%coloursCount];
$imgs.eq(i).css({backgroundColor: color});
}
ОБНОВЛЕНО скрипку: http://jsfiddle.net/Uy2FX/12/
Для некоторых очень простых советов по JQuery селекторы производительности: http://www.sitepoint.com/efficient-jquery-selectors/
'я
j08691