HTML计数条形码错误

时间:2014-03-14 12:27:24

标签: javascript html

非工作代码:

<html>
<body>
   <p id="timeCountBar">-></p>
   <script>
      var timeCountBarText = document.getElementById("timeCountBar").innerHTML;
      function subCount(){
          timeCountBarText="-"+timeCountBarText;
          document.getElementById('timeCountBar.innerHTML').innerHTML=timeCountBarText;
      }
      function countTime(){
          for (int i; i < 100; i++){
              setTimeout("subCount",10);
          }
          //something to do after counting has ended
      }
      countTime();
   </script>
</body>
</html>

只显示->而没有其他事情发生。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

你有两个主要问题。


通过查看浏览器中的JavaScript控制台,可以轻松发现第一个。

JavaScript不是JavaScript,int应为var


第二个是setTimeout没有睡觉。您需要使用subCount递归拨打setTimeout或使用setInterval而不是使用for循环。

答案 1 :(得分:1)

解决:

HTML:

<p id="timeCountBar">-></p>

JavaScript的:

var timeCountBarText = document.getElementById("timeCountBar").innerHTML;

var sc = setInterval(function(){subCount()}, 10);

var i=0;

var subCount = function() {
    timeCountBarText = "-" + timeCountBarText;

    document.getElementById('timeCountBar').innerHTML = timeCountBarText;

    i=i+1;

    if(i==100){
    clearInterval(sc);
    }
}

你可以看到它在这里工作: http://jsfiddle.net/aniruddha153/Ezres/

你有3个问题:

  1. 逻辑并不完全正确。

  2. 您不应使用setTimeout。相反,您应该使用setInterval。并且声明setInterval的正确方法是 setInterval(function(){subCount()}, 10);

  3. 您需要使用clearInterval

  4. 参考:JavaScript Timing Events