我是JQuery的新手,但是我无法弄清楚if语句为什么不起作用。您会在代码alert(a)alert(timesRun)中看到它放在这里,以便可以测试变量是否确实按预期计数并且它们确实存在。

现在的问题是:var a由用户输入确定,当它等于timesrun时应该使时钟停止,但是即使两个警报都说:var a =12var timesrun is 12,if语句似乎也不起作用,即使if声明应该已经停止了它。对不起,如果我不清楚或混乱,我只是在读中学,甚至没有讲英语的人。

< script >
  $(document).ready(function () {
    $('#turnright1').click(function () {
      var a = $("#nummr1").val();
      var angle = 0;
      var timesRun = 0;
      var interval = setInterval(function () {
        timesRun += 1;
        alert(a);
        alert(timesRun);

        if (timesRun === a) {
          clearInterval(interval);
        }

        angle += 3.6;
        $('img[src^="Images/lockercenter.png"]').rotate(angle);
        i++
      }, 1000);
    });
  });
</script>

最佳答案

问题是$("#nummr1").val();返回一个字符串,并且您正在检查与===的严格相等性。要解决此问题,请将其更改为

if(timesRun == a){
    clearInterval(interval);
}


`
要么

if(timesRun === parseInt(a)){ //or +a;
        clearInterval(interval);
}

10-06 01:58