JQuery中的计数器不起作用

时间:2015-05-29 11:16:35

标签: jquery html

我想设置一个有3次尝试的计数器。警告框必须显示剩余的尝试。当我测试它时,脚本不会运行。

这是我的代码:

JQUERY

var counter = 3;
$(document).ready(function() {
    $(".nummer").click(function() {

        var nummer = $(this).text();

        $("#display").append(nummer);

        if ($("#display").text().length > 5) {
            controle();
        }
    });
});

function controle() {

    if ($("#display").text() == 1234) {
        alert("correct");
    } else {
        while (counter > 0) {
            alert(counter - 1 "pogingen");
        }
        alert("you failed");
    }
}

HTML

<div id="display"> </div>
<div id="toetsen">
    <ul>
        <li><a class="nummer" href="#" id="knop1">1</a></li>
        <li><a class="nummer" href="#" id="knop2">2</a></li>
        <li><a class="nummer" href="#" id="knop3">3</a></li>
    </ul>

3 个答案:

答案 0 :(得分:1)

替换它:

alert(counter - 1 "pogingen");

有了这个:

alert((counter - 1)+"pogingen");
--counter;

还要确保正确缩进代码,以免丢失。

答案 1 :(得分:1)

使用下面的代码,警告你错过了concat运算符

function controle() {

    if ($("#display").text() == 1234) {
        alert("correct");
    } else {
        while (counter > 0) {
            alert((counter-1)+"pogingen");
            counter = counter-1; // decrement the value
        }
        alert("you failed");
    }
}

答案 2 :(得分:1)

  • 您的提醒包含语法错误。您应该使用+

    连接字符串值
    alert(counter - 1 + " pogingen");
    
  • counter - 1但是,总是会产生2。在某些时候,您需要实际设置值。最可读的是counter = counter - 1,但最短的是在使用--counter在警报中访问该值之前将其递减1:

    alert(--counter + ' pogingen');
    
  • 在决定是否测试给定值时,您需要检查$("#display").text().length > 5。如果正确的答案确实是1234,那么如果你只测试一个长度大于5的值,你将永远不会实现这一点。

  • 您使用的是while。这将简单地循环,直到条件为假。在您的情况下,由于您没有递减该值,它永远不会,并且您有一个无限循环的警报。如果你像上面那样引入减量,那么你所有的猜测都会立即用完。您希望使用if ... else而不是while,仅测试counter当前值,然后继续。

  • 同样,如果正确答案确实是1234,那么您永远无法实现此目标,因为没有4按钮。

  • 最后,您唯一能做的就是追加到该值。在每次猜测之后,您需要清除它以允许新的猜测。将$('#display').text('');设置在方便的位置,例如显示警报后。

&#13;
&#13;
var counter = 3, correctAnswer = '1234';
$(document).ready(function() {
  $(".nummer").click(function() {
    var nummer = $(this).text();
    $("#display").append(nummer);

    if ($("#display").text().length >= correctAnswer.length) {
       controle();
    }
  });
});

function controle() {
  if ($("#display").text() == correctAnswer) {
    alert("correct");
  } else {
    if(counter > 0) {
      alert(--counter + " pogingen");
    } else {
      alert("you failed");
    }
    $('#display').text('');
  }
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="display"></div>
<div id="toetsen">
    <ul>
        <li><a class="nummer" href="#" id="knop1">1</a></li>
        <li><a class="nummer" href="#" id="knop2">2</a></li>
        <li><a class="nummer" href="#" id="knop3">3</a></li>
        <li><a class="nummer" href="#" id="knop4">4</a></li>
    </ul>
</div>
&#13;
&#13;
&#13;