Javascript 通过getElementById更改CSS无效

Javascript 通过getElementById更改CSS无效,javascript,Javascript,我有一行简单的代码: document.getElementById('tb').style.background=' 我的CSS样式表是: .tb { background: #2f2f2f; } 为什么我的Javascript代码不能工作 我是Javascript新手,因此如果您能解释问题而不是告诉我问题,我将不胜感激 您的元素使用类,而不是id 将其更改为: <div id="tb">Foo bar</div> 如果要继续使用类,请使用以下JS: //

我有一行简单的代码:

document.getElementById('tb').style.background='

我的CSS样式表是:

.tb {
    background: #2f2f2f;
}
为什么我的Javascript代码不能工作


我是Javascript新手,因此如果您能解释问题而不是告诉我问题,我将不胜感激

您的元素使用类,而不是id

将其更改为:

<div id="tb">Foo bar</div>

如果要继续使用类,请使用以下JS:

// Get all .tb elements
var tbs = document.getElementsByClassName('tb')
i = tbs.length;
// Loop
while(i--) {
    // Change their background
    tbs[i].style.backgroundColor = "#FFFFFF";
}
或者,如果您只对第一个元素感兴趣:

document.getElementsByClassName('tb')[0].style.background = "#FFFFFF";

这里的主要问题是,正如zessx所说,tb显然是一个类,而不是一个ID(如果我假设您的CSS样式表是正确的)

对于CSS样式表,当您使用

.something {
}
语法,句点表示它是一个类。ID将通过使用

#something {
}
要想知道哪一个真正出了问题,我们可能需要看更多使用“tb”的代码


如果“tb”实际上是一个类,那么您应该尝试使用jQuery,从中可以获取某个类的元素。

检查下面的fiddle链接

这是您的html代码

<div id="tb">&nbsp;</div>

问候
Maha

是的,正如其他人所说,您没有引用id。非常快地向您展示如何使用js引用类

var a=document.getElementsByClassName('tb');
a[0].style.background='#FFFFFF';

若要获取元素并更改其样式,请使用
document.getElementsByClassName('tb')[0]。style.background='#FFFFFF'
。Fiddle:。

如果您的css如下所示:

.tb {
    background: #2f2f2f;
}
“tb”是一个类(“.”是一个类的CSS选择器)。你需要做的是让“tb”成为一个id,然后它就可以工作了

例如: HTML:

或者,您可以将JS替换为:

document.getElementByClassName('tb').style.background = '#FFFFFF';
但我推荐第一种方法。
希望有帮助。

嗯,是身份证还是班级<代码>.td!=#td
@elclanrs对不起。班级。我应该如何在课堂上做到这一点?对。好啊我需要把它作为一门课。如何通过Javascript更改类的后台属性?您的意思是
document.getElementsByClassName('tb')[0]。style.background=“#FFFFFF”?而不是背景色
?不管怎样,它还是不起作用。。。?。你可以使用
background
backgroundColor
,无论什么(我更改了它以适合你原来的帖子)。它在那里工作,但我得到错误
无法读取未定义的
的属性“style”。我真的复制并粘贴了它。这意味着您的文档中没有任何
.tb
元素。没有Javascript技术吗?我只是刚刚开始,我认为这是一个简单的开始!我的意思是,如果你想使用javascript,你可以做的一件事就是在这个类所在的地方放置一个id标记,然后使用上面使用的方法。还有var elements=document.getElementsByClassName('someClass');但这在某些浏览器中不起作用,比如我相信IE8。我需要将它作为一个类来保存。如何对类执行此操作??将代码更改为document.getElementsByClassName('tb')。style.background='red';这篇文章上的每个人都提供了一个有效的答案,应该对你有用。如果你仍然不能让它工作,你应该发布完整的代码,这样我们可以看看。
<div id="tb">whatever</div>
#tb {
    background: #2f2f2f;
}
document.getElementByClassName('tb').style.background = '#FFFFFF';