首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在包含节点的数组项上设置属性

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

Stack Overflow用户
提问于 2014-09-30 00:12:37
回答 2查看 1K关注 0票数 1

我是一个初学者Javascripter,我想运行这个脚本来随机更改框的背景色。这是我的JS:

代码语言:javascript
复制
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。知道我是怎么做到的吗?

http://jsfiddle.net/w8gLqghz/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-30 00:17:45

getElementsByTagName给你一个元素列表。拥有setAttribute方法的是元素本身。

您必须遍历列表并设置每个元素的属性;

代码语言:javascript
复制
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/

票数 0
EN

Stack Overflow用户

发布于 2014-09-30 00:14:04

正如您在调试器中所看到的,innDivs是空的(您从未在其中放置任何内容)。

因此,innDivs[i]不存在。

你是说divs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26110810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档