功能仅适用于第一个条件

时间:2015-02-16 15:56:25

标签: javascript

按下传递给功能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";

        }
    }

3 个答案:

答案 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