javascript - Javascript 中的点击计数器实现

标签 javascript

我在使用 Javascript 实现点击计数器时遇到了一些问题。我用谷歌搜索了它,但无法找出代码中的错误。

在下面的笔中,我使用 guesses 变量作为计数器。似乎每次我点击提交时,我的 guesses 变量都会重置为零。

The Number guessing game pen

我也在这里粘贴代码片段:

//let targetNumber = Math.floor(Math.random() * 10) + 1;
let targetNumber = 6;
var guesses = 0;

function init() {
  var button = document.getElementsByTagName("button")[0];
  button.addEventListener("click", function() {
    var guess = document.getElementsByName("number")[0]["value"];
    guesses += 1;
    guess = parseInt(guess);
    check(guess);
  });

}

function check(value) {
  if (guesses < 5) {
    if (value === targetNumber) {
      showWin();
    } else {
      showError();
    }
  } else {
    showLoss();
  }
}

function showWin() {
  var p = document.createElement("P");
  var t = document.createTextNode("You Won!");
  p.appendChild(t);
  document.body.appendChild(p);

  //document.getElementsByTagName("p")[0].innerHTML = "You Won!";
  document.getElementsByTagName("form")[0].style.display = "none";
}

function showError() {
  var p = document.createElement("P");
  var t = document.createTextNode("Incorrect Guess! Try again.");
  p.appendChild(t);
  document.body.appendChild(p);
}

function showLoss() {
  var p = document.createElement("P");
  var t = document.createTextNode("You Lost!");
  p.appendChild(t);
  document.body.appendChild(p);
  document.getElementsByTagName("form")[0].style.display = "none";
}

init();
<p>Guess a number between 1 and 10</p>
<form>
  <input type="text" name="number">
  <button>Submit</button>
</form>

最佳答案

在您的代码笔中,正在提交表单,导致页面重新加载。所以你真的总是重新开始,每次都将 guesses 变量重置为 0。

防止这种情况的最简单方法是将 type="button" 添加到 button 元素,以防止它自动提交表单。默认情况下,按钮类型为“提交”,这使他们提交包含表单(如果有)。

关于javascript - Javascript 中的点击计数器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38505719/

相关文章:

javascript - 如何减少 Node JS 中多个异步函数的运行时间?

javascript - 在 jqGrid 的行中添加自定义按钮?

javascript - 除了 CSS 变换之外,还有什么方法可以旋转元素吗?

javascript - CORS BLOCKED 'Access-Control-Allow-Origin' Firebase 功能不允许

javascript - 嵌套映射函数

javascript - 在 iframe 中输入字段会导致 iframe 滚动到底部

返回 AJAX 调用数据的 JavaScript 函数

javascript - 尝试通过用户输入在 javaScript 中触发事件

javascript - 如何知道我在 html 表(日历)中的位置?

javascript - 在单台 Windows 机器上开发多个基于 Node.js 的应用程序