在jQuery中if-else语句中更改变量的问题

时间:2017-05-17 06:45:53

标签: jquery if-statement

我对这段代码有疑问。一切都包含在$(document).ready函数中。我的控制台日志在下面,由于某种原因,即使aoc变量为false,它也会继续进入语句的else部分。我也尝试过使用else if(aoc = true),但同样的事情发生了。

    var aoc = false;

$("#aocBtn").click(function(e) {
    console.log(aoc);
    if (aoc = false) {
        $(this).removeClass("btn-outline-primary").addClass("btn-primary");
        aoc = true;
        console.log("Aoc was false and is now: "+aoc);
    } else {
        $(this).removeClass("btn-primary").addClass("btn-outline-primary");
        aoc = false;
        console.log("Aoc was true and is now: "+aoc);
    }
    e.preventDefault();
});  

enter image description here

2 个答案:

答案 0 :(得分:0)

if(aoc == false)

您的if语句是赋值,而不是条件,因此它为变量aoc赋值false。替换为“==”运算符,这是条件检查,您的代码应运行正常。

另外,你写过吗

if(aoc = true)

而不是假,那么只有“if”部分才会一直有效。 希望这会有所帮助。

答案 1 :(得分:0)

aoc ? $(this).removeClass("btn-outline-primary").addClass("btn-primary") : $(this).removeClass("btn-primary").addClass("btn-outline-primary");
aoc = !aoc;