我一直收到这个错误:Uncaught TypeError:无法读取undefined的属性'style'

时间:2015-07-20 18:58:24

标签: javascript styles uncaught-typeerror

错误在上面,它告诉我它在346行。 我去那里三重检查了一切,但似乎没有错。 除非以下陈述为真,否则变量“cw”一直在变化。这是因为我正在制作像2D Minecraft这样的块,而“cw”正在检查所有按钮/块中的水,通过从0更改为159并再次返回0。 这是代码:

if (document.getElementsByTagName("button")[cw].style.backgroundColor === "#00ced1") {

我不再在这方面工作了,但是感谢Quentin指出我的问题的缺陷......我完全忘记了出于某种原因包含背景代码,这个原因很久就被遗忘了。代码在我的旧电脑上,但如果你出于某种原因想要它,只需评论。

1 个答案:

答案 0 :(得分:1)

如果您说cw变量一直在变化,那么可能会出现document.getElementsByTagName("button")[cw]将返回undefined的情况。如果这是您的代码并且您可以修改它,那么您可以将if语句更改为以下代码:

if (document.getElementsByTagName("button")[cw] && document.getElementsByTagName("button")[cw].style && document.getElementsByTagName("button")[cw].style.backgroundColor === "#00ced1") {

在这种情况下,您将收到相同元素的三倍,因此您可能应该添加其他变量:

var element = document.getElementsByTagName("button")[cw]
if (element && element.style && element.style.backgroundColor === "#00ced1") {
    // code
}