每次单击时都需要更改表数据元素的背景颜色。每个表数据都有唯一的ID。声明全局变量td1的初始值为0.值在switch语句中更改为0或1.首先单击始终为“黄色”,但下一次单击也是如此,它应该更改为“蓝色”然后返回'黄'等等。
我尝试了'else'然后'else if'具有相同的结果。
感谢您的帮助
function changebg(elem)
{
td_id=elem.id;
switch (td_id)
{
case "a1" :
if(td1 = 0)
{
elem.style.backgroundColor = "yellow";
td1=1;
break;
}
else if (td1 = 1)
{
elem.style.backgroundColor = "blue";
td1=0;
break;
}
case "a2" :
elem.style.backgroundColor = "yellow";
break;
}
}
对该函数的调用是'onclick(this)'(snippit:table实际上有几行)。
<tr>
<td onclick="changebg(this)" id="a1">1
<td onclick="changebg(this)" id="a2"> 2
</tr>
答案 0 :(得分:3)
测试平等是==
; =
用于分配。
答案 1 :(得分:1)
我建议您正确关闭所有代码(例如td
)
然后,最好初始化您需要的变量以避免意外结果。
var td1 = 0; // init flag
function changebg(elem) {
td_id = elem.id;
switch (td_id) {
case "a1":
if (td1 == 0) {
elem.style.backgroundColor = "yellow";
td1 = 1;
} else if (td1 == 1) {
elem.style.backgroundColor = "blue";
td1 = 0;
}
break;
case "a2":
elem.style.backgroundColor = "yellow";
break;
}
}
<table>
<tr>
<td onclick="changebg(this)" id="a1">1</td>
<td onclick="changebg(this)" id="a2">2</td>
</tr>
</table>