为什么我的JavaScript If语句不起作用?

时间:2017-08-18 17:53:46

标签: javascript html

我一直试着弄清楚为什么我的if语句永远不会触发。任何帮助将不胜感激!

var clickcounter = 0;
var buttonclicker = document.getElementById("buttonclicker");

function unblur() {
    clickcounter = clickcounter + 1;
    console.log(clickcounter);
}

if (clickcounter === 1) {
    buttonclicker.textContent = "Unlock More";
    alert(clickcounter);
}

变量clickcounter将等于或大于1.我首先尝试使用if(clickcounter => 1)并尝试if(clickcounter> 0)但这些都不起作用。我究竟做错了什么? 这是整个事物的代码:https://codepen.io/sage379/pen/JyppZv

4 个答案:

答案 0 :(得分:1)

根据您的代码示例,unblur()永远不会被调用,因此clickcounter仍为0

答案 1 :(得分:0)

问题在于,一旦增加clickcounter,就永远不会检查它是否已更改。在设置clickcounter = 0后立即在您的脚本中执行一次检查。

以下是我在一个名为checkClickCounter()的新功能中包装该检查的示例。每次按下单击按钮调用此函数时,都会在unblur()中调用此函数。我将您的if语句更改回>=,但由于您按1递增,因此在使用===一次点击后它将始终返回true,因此此更改在您当前的代码中并不重要。

var clickcounter = 0;
var buttonclicker = document.getElementById("buttonclicker");

function unblur() {
    clickcounter = clickcounter + 1;
    checkClickCounter(clickcounter);
}

function checkClickCounter(count){
    if (count >= 1) {
        buttonclicker.textContent = "Unlock More";
        //alert(clickcounter);
    }
}

答案 2 :(得分:0)

请尝试使用以下代码段。如果我不理解您的要求,请告诉我。

var clickcounter = 0;
var buttonclicker = document.getElementById("buttonclicker");

       function unblur() {

            clickcounter = clickcounter + 1;
            console.log(clickcounter);


             if (parseInt(clickcounter) >= 1){
                  buttonclicker.textContent = "Unlock More";

             }
        }

答案 3 :(得分:0)

将你的if语句放在unblur中:

var clickcounter = 0; 
var buttonclicker = document.getElementById("buttonclicker");
function unblur() {
 clickcounter = clickcounter + 1;
 console.log(clickcounter);
 if (clickcounter === 1) {
    buttonclicker.textContent = "Unlock More"; 
    alert(clickcounter);
 }
}