问答详情
源自:8-6 取消计时器clearTimeout()

问下 我定义一个全局变量

// 我定义一个全局变量s,为什么提示“Uncaught TypeError: Cannot read property 'value' of null”
var s =  document.getElementById("count");
//   var val = s.value;
  function startCount(){
    s.value = num;
    num=num+1;
    i=setTimeout("startCount()",1000);
  }


提问者:toofirst 2016-03-25 21:08

个回答

  • 一只特立独行的doge
    2016-04-12 15:35:17
    已采纳

    你把js放到form标签后面去,这应该还是html文档的加载顺序问题,你这里虽然定义的是全局变量,但是定义的时候,count还不存在,所以s并没有得到value值。

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>计时器</title>
    </head>
    
    </head>
    <body>
      <form>
        <input type="text" id="count" />
        <input type="button" value="Start"  onClick="startCount()"/>
        <input type="button" value="Stop"  onClick="stopCount()"/>
      </form>
      <script type="text/javascript">
      var num=0;
      var i;
      var s=document.getElementById('count');
      function startCount(){
       //document.getElementById('count').value=num;
        s.value=num;
        num=num+1;
        i=setTimeout("startCount()",1000);
      }
      function stopCount(){
          clearTimeout(i);
      
      }
    </script>
    </body>
    </html>


  • ssl970432178
    2016-03-25 21:58:47

    不应该s.value

    应该s.innerHTML