Javascript 为什么onclick只在第一次单击时工作,然后停止工作?

Javascript 为什么onclick只在第一次单击时工作,然后停止工作?,javascript,html,Javascript,Html,为什么当我第一次点击div元素时,它的工作状态和背景颜色都改变了,但第二次却没有改变 var Colors=[白色]; 功能转换颜色,id{ 如果颜色===白色{ 颜色=黑色; document.getElementByIdid.style.backgroundColor=黑色; }否则,如果颜色===黑色{ 颜色=白色; document.getElementByIdid.style.backgroundColor=白色; } } 不要以这种方式调用处理程序: onclick="c

为什么当我第一次点击div元素时,它的工作状态和背景颜色都改变了,但第二次却没有改变

var Colors=[白色]; 功能转换颜色,id{ 如果颜色===白色{ 颜色=黑色; document.getElementByIdid.style.backgroundColor=黑色; }否则,如果颜色===黑色{ 颜色=白色; document.getElementByIdid.style.backgroundColor=白色; } }
不要以这种方式调用处理程序:

 onclick="changeBack(Colors[0], 'box1')"
您可以简化为:

onclick="changeBack(this)"
在您的示例框1中,this关键字引用当前元素

要更改颜色,只需测试当前背景颜色的值:

功能转换元件{ var color=ele.style.backgroundColor | | |“白色”==“白色”?“黑色”:“白色”; ele.style.backgroundColor=颜色; } div{ 边框:厚实0000FF; 高度:100px; }
因为您总是使用颜色[0]调用函数,而颜色[0]总是白色的,所以您总是在代码中通过if color===白色路径。您正在强制使用白色!但是在if语句中,它是否变为黑色?传递给函数的参数永远不会改变。
onclick="changeBack(this)"