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

关于document.getElementById("clock").value = time

下段代码不能使文本框显示出当前电脑时间,报错Cannot set property 'value' of null。为什么像课程例子那样调用函数(把setInterval换成setTimeout)就没问题?(大概意思是都把js写在前面,为何一个会报错,一个不会)

<head>

<script type="text/javascript">

    var time=new Date();                

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

</script>

</head>

<body>

  <form>

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

  </form>

</body>


提问者:hong03223376190 2018-04-25 15:31

个回答

  • 等待彼_岸
    2018-04-25 17:19:20
    已采纳

    setInterval会先调用一次函数吧,调用函数的时候,body中input元素还没加载到,所以Cannot set property 'value' of null不能为一个不存在的元素赋值,  setTimeout是停一段时间以后才会调用函数,此时input元素已经存在.  我觉得是这样的 

  • 慕盖茨1169721
    2018-04-25 16:23:03

    这么厉害的代码,我还没看懂,让我好好明白一下意思先,一会回来告诉你。