函数仅适用于第一个条件

Function only works for the first condition

本文关键字:条件 第一个 适用于 函数      更新时间:2023-12-07

按下传递给函数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";
        }
    }

您使用的是赋值运算符,而应该使用比较运算符:

if (!(document.getElementById(x).style.border = "none")) {

应为:

if (!(document.getElementById(x).style.border === "none")) {
// --------------------------------------------^

您的if语句将无法按预期工作!

if ( !(document.getElementById(x).style.border = "none"))

它将您的边界更改为none,而不是将边界值检查为none,这会破坏您的代码逻辑!

先解决这个问题,然后再次记录您的值。我相信你会得到解决方案的。

先修复,然后重写/记录您的代码:if (!(document.getElementById(x).style.border === "none"))

首先,如前所述,您需要使用比较运算符===而不是赋值运算符=。其次,您的代码中有一个逻辑错误,请注意!的意思是而不是因此:

    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",所以请删除代码中的NOT运算符!

这是一个Fiddle示例