Javascript点击计数器

时间:2017-08-13 04:40:34

标签: javascript

我刚刚开始学习Javascript,我试图使用Javascript为网页编写点击计数器的代码。我知道我们必须使用cookie来获取正确的数字,并使用PHP来修改存储在服务器中的数据。但是,请你帮我调试一下吗?我得到的输出为"访客人数为:NaN"

这是我的代码:



G




3 个答案:

答案 0 :(得分:1)

您需要使用parseInt

<script> 
    function counter_fn(){
       var counter = document.getElementById("cntr");
       var count = 0;
       count = parseInt(counter.value);
       count = count+1;
       counter.innerHTML = parseInt(count);
    }
    window.onload = counter_fn;  
 </script>

<强>更新

@Anurag Singh Bisht评论,you cannot get value from a span element。因此,要从<span>获取价值,您需要使用$('span').text();

<html>
    <body>
        <div id="cntr"> 
            The number of visitors is : 
            <span>0</span>
        </div>

       <script> 
            function counter_fn(){
                var counter = $('#cntr span').text(); // geting value from span
                var count = 0;
                count = parseInt(counter.value);
                count = count+1;
                counter.innerHTML = parseInt(count);
           }
           window.onload = counter_fn;  
      </script>
    </body>
</html>

答案 1 :(得分:0)

您需要将字符串解析为整数,并且需要获取innerHTML。

<script> 
  function counter_fn(){
    var counterElement = document.getElementById("cntr")
    var counterNumber = parseInt(counterElement.innerHTML)
    counterNumber = counterNumber + 1
    counterElement.innerHTML = counterNumber
  }
  window.onload = counter_fn;  
</script>

正确的方法是将此值存储在其他位置,例如localStorage并从那里读取它。您不应该阅读自己的HTML来更新值。 HTML元素应该是结果,而不是您的输入。

var counterNumber = 1

if (localStorage.getItem("count")) {
  counterNumber = parseInt(localStorage.getItem("count")) + 1
}
else {
  localStorage.setItem("count", counterNumber)
}

答案 2 :(得分:0)

您正试图从value元素中获取span,这是错误的。 您的counter.valueundefined,因此它会给您错误的答案。

您可以使用0span获取document.getElementById("cntr").innerHTML。但返回的值是string。因此,您需要parseInt将其转换为integer,然后您的添加才会为您提供正确的值。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <div>
    <p>The number of visitors is : <span id="cntr">0</span></p>
  </div>

  <script>
    function counter_fn() {
      var counter = document.getElementById("cntr");
      var count = 0;
      count = parseInt(counter.innerHTML);
      count = count + 1;
      counter.innerHTML = count;
    }
    window.onload = counter_fn;
  </script>
</body>

</html>