javaScript同意等待代码实现心得

  正确源程序如下:

  

复制代码 代码如下:

  <script type="text/javascript">

  var lastTime = 3;

  function abc() {

  var btnReg = document.getElementById("btnReg");

  if (!btnReg) { return; }

  if (lastTime <= 0) {

  btnReg.value = "同意";

  btnReg.disabled = "";

  clearInterval("TimeId");

  }

  else {

  btnReg.value = "还剩下" + lastTime + "秒";

  lastTime--;

  }

  }

  var TimeId = setInterval("abc()", 1000);

  </script>

  我把第四行的 var btnReg = document.getElementById("btnReg")定义为全局变量btnReg = document.getElementById("btnReg");

  并且放到函数abc()之外,程序实现不了功能了。

  原因如下:浏览器解析Html页面是从上到下,解析到btnReg = document.getElementById("btnReg")时,id为btnReg的按钮还没被解析出来,所以全局变量btnReg的值为为定义,

  又因为只执行了一次所以程序实现不了功能了,而正确的源程序每隔一秒就去取一次,等到button按钮解析出来后就可以去到值,程序就可以实现功能了。