我是一个初学者Javascripter,我想运行这个脚本来随机更改框的背景色。这是我的JS:
var divs = document.getElementsByClassName("col-sm-3");
var innDivs = [];
colournumber = function() {
return(Math.random().toString(16) + '000000').slice(2, 8);
}
for (i=0;i<divs.length;i++) {
innDivs[i] = divs[i].getElementsByTagName("div");
innDivs[i].setAttribute("style","background-color:#"+colournumber());
}但是我得到的错误是我不能在setAttribute上使用innDivsi。知道我是怎么做到的吗?
发布于 2014-09-30 00:17:45
getElementsByTagName给你一个元素列表。拥有setAttribute方法的是元素本身。
您必须遍历列表并设置每个元素的属性;
for (i=0;i<divs.length;i++) {
innDivs[i] = divs[i].getElementsByTagName("div");
for (j=0;j<innDivs[i].length;j++) {
innDivs[i][j].setAttribute("style","background-color:#"+colournumber());
}
}发布于 2014-09-30 00:14:04
正如您在调试器中所看到的,innDivs是空的(您从未在其中放置任何内容)。
因此,innDivs[i]不存在。
你是说divs吗
https://stackoverflow.com/questions/26110810
复制相似问题