你好,我是一个自学成才的开发人员,我正尝试在jQuery中使用for()循环,但似乎不起作用。我正在尝试遍历RGB颜色数组,这些颜色目前已使用字符串进行了硬编码。以下是我要完成的任务的摘要。我希望每个div都包含一个
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;
}
答案 0 :(得分:7)
检查更新的小提琴http://jsfiddle.net/0xdwhsnc/
您错过了索引,而不是使用颜色[i]
for (var i = 0; i < squares.length; i++) {
squares[i].style.backgroundColor = colors[i];
}
答案 1 :(得分:1)
如果您的颜色数组将具有与具有类正方形的格数相同的颜色,则可以这样做!
$(".squares").each(function(key, value) {
$(this).css({"background-color" : colors[key]});
});
答案 2 :(得分:1)
尝试每个循环。 http://jsfiddle.net/cyztq6m5/15/
$(squares).each(function(key, value) {
value.style.backgroundColor = colors[key];
});
答案 3 :(得分:0)
您遇到一个简单的错误,colors
是一个数组,而不是颜色字符串,因此您应该使用colors[i]
for (var i = 0; i < squares.length; i++) {
squares[i].style.backgroundColor = colors[i];
}
答案 4 :(得分:0)
您还可以对每个对象使用jquery
$.each(squares, function(idx, square){
square.style.backgroundColor=colors[idx]
});