Как я могу использовать для цикла с JQuery? - PullRequest
0 голосов
/ 31 августа 2018

Здравствуйте, я разработчик-самоучка и пытаюсь использовать цикл for () с jQuery, но, похоже, он не работает. Я пытаюсь перебрать массив цветов RGB, которые пока жестко запрограммированы со строками. Ниже приведен фрагмент того, что я пытаюсь выполнить. Я хочу, чтобы каждый div содержал diffrent

http://jsfiddle.net/CleverOscarDev/cyztq6m5/

var squares = $(".squares");
var colors = [
  "rgb(255, 0, 0)",
  "rgb(0, 255, 0)",
  "rgb(0, 0, 255)",
  "rgb(255, 0, 0)",
  "rgb(255, 0, 0)",
  "rgb(255, 0, 0)",
]

for (var i = 0; i < squares.length; i++) {
  squares[i].style.backgroundColor = colors;
}

Ответы [ 5 ]

0 голосов
/ 31 августа 2018

вы также можете использовать jquery для каждого

$.each(squares, function(idx, square){
    square.style.backgroundColor=colors[idx]
});
0 голосов
/ 31 августа 2018

Вы получили простую ошибку, colors - это массив, а не цветная строка, поэтому вы должны использовать colors[i]

for (var i = 0; i < squares.length; i++) {
  squares[i].style.backgroundColor = colors[i];
}    
0 голосов
/ 31 августа 2018

Если ваш массив цветов будет иметь такое же количество цветов, что и число div.s с квадратом класса, вы можете сделать это!

$(".squares").each(function(key, value) {
    $(this).css({"background-color" : colors[key]});
});
0 голосов
/ 31 августа 2018

Попробуйте каждый цикл. http://jsfiddle.net/cyztq6m5/15/

$(squares).each(function(key, value) {
  value.style.backgroundColor = colors[key];       
}); 
0 голосов
/ 31 августа 2018

Проверьте обновленную скрипку http://jsfiddle.net/0xdwhsnc/

Вы пропустили индекс, вместо цветов используйте цвета [i]

for (var i = 0; i < squares.length; i++) {
 squares[i].style.backgroundColor = colors[i];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...