javascript - 无法在包含节点的数组项上设置属性

标签 javascript

我是一名 JavaScript 初学者,我想运行此脚本来随机更改框的背景颜色。这是我的 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());
}

但我收到错误,无法在 innDivs[i] 上设置属性。我有什么想法如何做到这一点吗?

http://jsfiddle.net/w8gLqghz/

最佳答案

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());
    }
}

http://jsfiddle.net/mowglisanu/w8gLqghz/5/

关于javascript - 无法在包含节点的数组项上设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26110810/

相关文章:

javascript - 将前缀添加到 Angular 开发服务器 url

javascript - 在 angularjs 中的行和列中创建动态复选框按钮

javascript - React-Leaflet 通过状态变化改变 GEOJSON 形状颜色

javascript - 如何在 onClick 元素后设置回调函数?

javascript - 在 "line.slice()"上获取 "karma init"错误

javascript - 检查父类中是否存在类

javascript - Kendo Ui ListView "press to load more"无法使用 MVVM 样式

javascript - websockets 是否与 SPDY 一起工作?

javascript - 从 Angular 调用 Javascript 函数

javascript - 架构师将 Store 同步到 WebService