为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不加setInterval()计时器,就连时间都显示不出来了呢,不是应该显示出来一次但是不刷新么?

代码

<!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(); 

    var h=time.getHours();

    var m=time.getMinutes();

    var s=time.getSeconds();

    var w=time.getDay();

    attime= h+":"+m+":"+s ;

    document.getElementById("clock").value = attime;

  }

  

</script>

</head>

<body>

<form>

<input type="text" id="clock" size="50"  />

</form>

</body>

</html>


没有加第13行,右边的框里不显示时间,我的理解应该是显示一次但是不刷新才对呀?

正在回答

3 回答

你的函数只是声明了而已,你要调用才会运行

把13行换成

  window.onload = function(){

    clock();

  }

0 回复 有任何疑惑可以回复我~
#1

慕前端1842812 提问者

非常感谢!
2016-08-05 回复 有任何疑惑可以回复我~
#2

派皮诺

为什么调用直接写成clock();不行呢,只有写成你这样才行?
2016-09-01 回复 有任何疑惑可以回复我~
#3

水里有条鱼 回复 派皮诺

window.onload = function(){} 当所有东西加载完后执行函数,不加的话,由于是按顺序加载的<input type="text" id="clock" size="50" />还没加载,也就没有id为clock的节点,getElementById("clock")取不到节点,函数自然出错,也可以把<script>整个放在<input type="text" id="clock" size="50" />后面这样就可以直接调用clock();
2016-09-01 回复 有任何疑惑可以回复我~
#4

派皮诺 回复 水里有条鱼

我试了下,果然如此,多谢大侠指点,谢谢啦!
2016-09-01 回复 有任何疑惑可以回复我~
查看1条回复

函数需要调用才会显示

0 回复 有任何疑惑可以回复我~

你的clock 根本就没调用,所以不会显示时间和刷新.

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么不加setInterval()计时器,就连时间都显示不出来了呢,不是应该显示出来一次但是不刷新么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信