问答详情
源自:8-3 计时器setInterval()

为什么不能直接打印attime?

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>定时器</title>
<script type="text/javascript">
  var attime;
  function clock(){
    var time=new Date();         
    attime= time.getHours()+"时"+time.getMinutes()+"分"+time.getSeconds()+"秒" ;
    document.getElementById("clock").value = attime;

//为什么改成 document.write(attime);只显示一个不变的值,下面计时器不是间隔时间后运行一次函数,函数体内new一个Date对象时时间在变化,attime的内容也应该随着变化的呀?
  }
  setInterval(clock,100);
</script>
</head>
<body>
<form>
<input type="text" id="clock" size="50"  />
</form>
</body>
</html>

提问者:苟延残喘1 2017-05-03 17:59

个回答

  • 慕勒7123956
    2017-05-03 20:44:16
    已采纳

    改成document,write(attime)以后,应该会一直往文档里面写数据的,写进去的都是当时的时间,你看看是不是程序哪里写错了

  • 慕粉2109137568
    2017-05-03 20:51:08

    直接输出的话只是获取输出当前的一个值,只会一直在<input>文本中输出,并不能显示计时,而通过获取<input>的id不断改变它的值,所以看起来像时钟在变化