按下传递给功能PIG元素x的按钮项目ID并在没有边框时按下时更改其边框 - 按2px,再次按下时 - 边框消失。仅适用于第一个条件。请帮助。
function PIG(x) {
if (!(document.getElementById(x).style.border = "none")) {
document.getElementById(x).style.border = "2px solid green";
}
else if(!(document.getElementById(x).style.border = "2px solid green")){
document.getElementById(x).style.border = "none";
}
}
答案 0 :(得分:2)
当您使用比较运算符时,您正在使用赋值运算符:
if (!(document.getElementById(x).style.border = "none")) {
应该是:
if (!(document.getElementById(x).style.border === "none")) {
// --------------------------------------------^
答案 1 :(得分:0)
你的if语句不能按预期工作!
if ( !(document.getElementById(x).style.border = "none"))
将您的边框更改为,而不是 并将其划分为你的代码逻辑很多!
先修复此问题并再次记录您的值。 我相信你会得到解决方案。
先修复然后重写/记录您的代码:
if (!(document.getElementById(x).style.border === "none"))
答案 2 :(得分:0)
首先,已经指出我们需要使用除赋值运算符===
之外的比较运算符=
。其次,您的代码中存在逻辑错误,请注意!
表示不所以:
if (!(document.getElementById(x).style.border === "none")) {
document.getElementById(x).style.border = "2px solid green";
}
else if(!(document.getElementById(x).style.border === "2px solid green")){
document.getElementById(x).style.border = "none";
}
意思是:
/*
If the border is NOT "none" (In other words it's likely solid green)
-> Make the border solid green
Otherwise if the border is NOT solid green (In other words it's likely none)
-> Make the border none
*/
显然您要删除“NOT”,因此请删除代码中的非运算符!
。
<强> Here is a Fiddle Example 强>