I keep getting this error: Uncaught TypeError: Cannot read property 'style' of undefined

I keep getting this error: Uncaught TypeError: Cannot read property 'style' of undefined

上面的错误告诉我它在第346行。 我去了那里,对所有内容进行了三次检查,但似乎没有任何问题。 除非以下陈述为真,否则变量 "cw" 一直在变化。这是因为我正在制作一个像 2D Minecraft 这样的方块,并且 "cw" 通过从 0 变为 159 再变回 0 来检查所有 buttons/blocks 中的任何一个是否有水。 这是代码:

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

我不再研究这个了,但感谢 Quentin 指出我问题的缺陷...出于某种原因我完全忘记了包括背景代码,而这个原因早已被遗忘。该代码在我的旧计算机上,但如果您出于某种原因需要它,请发表评论。

如果您说 cw 变量一直在变化,那么可能会出现 document.getElementsByTagName("button")[cw] 会 return 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
}