我想自动将背景颜色更改为每个div的不同背景颜色,每个div应该有不同的颜色。
我不完全确定为什么我的html没有正确显示以及为什么我得到[对象HTMLCollection]
我的HTML:
<div id="box">
<h3>box</h3>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
我使用的功能是:
bgColor(document.getElementById('box').getElementsByTagName('div'));
function bgColor() {
var tableCntr= document.getElementById('box');
var tblHTML = document.getElementsByTagName('div');
var colors = [['red','blue','green'],['orange', 'black', 'purple']] ;
for(var i=0;i<colors.length;i++) {
for(var j=0;j<colors[0][0].length;j++) {
tblHTML += "<div style='background:" + colors[i][j] + "'> </div>" ;
}
}
tableCntr.innerHTML = tblHTML ;
}
window.onload = bgColor;
答案 0 :(得分:1)
javascript解决方案,你不需要在函数bgColor()中传递agrumenst;
bgColor();
function bgColor() {
var tableCntr= document.getElementById('box');
var tblHTML = '';//document.getElementsByTagName('div');
var colors = [['red','blue','green'],['orange', 'black', 'purple']] ;
for(var i=0;i<colors.length;i++) {
for(var j=0;j<colors[0][0].length;j++) {
tblHTML += "<div style='background:" + colors[i][j] + "'> </div>" ;
}
}
tableCntr.innerHTML = '<h3>box</h3>'+tblHTML ;
}
window.onload = bgColor;
jQuery解决方案
bgColor();
function bgColor() {
var tableCntr = jQuery('#box');
var tblHTML = '';
var colors = [['red','blue','green'],['orange', 'black', 'purple']] ;
for(var i=0;i<colors.length;i++) {
for(var j=0;j<colors[0][0].length;j++) {
tblHTML += "<div style='background:" + colors[i][j] + "'> </div>" ;
}
}
tableCntr.html( tblHTML );
}
window.onload = bgColor;
答案 1 :(得分:1)
为什么这么复杂......
function bgColor(ID) {
var tableCntr= document.getElementById(ID);
var DIVs = tableCntr.getElementsByTagName('div');
var colors = ['red','blue','green','orange', 'black', 'purple'] ;
var colourIndex = 0;
for(var i=0;i<DIVs.length;i++) {
DIVs[i].setAttribute('style','background-color: '+colors[colourIndex]);
colourIndex = (colourIndex + 1) % colors.length;
}
}
bgColor('box');
答案 2 :(得分:1)
function bgColor(id) {
var divs = document.getElementById(id).getElementsByTagName('div'),
colors = ['red','blue','green','orange', 'black', 'purple'];
[].forEach.call(divs, function(d, index) {
d.setAttribute('style', 'background-color: ' + colors[index % colors.length]);
});
}
bgColor('box');
#box div {
width: 30px;
height: 30px;
margin-right: 5px;
margin-bottom: 1px;
background-color: black;
}
<div id="box">
<h3>box</h3>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
</div>
答案 3 :(得分:0)
似乎是一个解决方案https://jsfiddle.net/8rkceLv9/3/
您只需选择#box
中的所有div并将其设置为背景。
我没有在数组中看到数组中的点。