innerText不起作用,一个简单的时钟

时间:2017-08-02 16:46:55

标签: javascript html

更新**

我发现clockDiv = null我不知道为什么这是

原始邮寄**

我试着做一个简单的数字时钟。一切正常但是在DIV中打印我的Var似乎给我带来了很多麻烦。出于某种原因,当我使用innerText时代码停止。它可能是一个简单的修复,但我没有看到错误。



[][]string

function displayTime() {
  var currentTime = new Date();
  var hours = currentTime.getHours();
  var minutes = currentTime.getMinutes();
  var seconds = currentTime.getSeconds();

  // This gets a "handle" to the clock div in our HTML
  var clockDiv = document.getElementsByClassName("clock")[0];

  // Then we set the text inside the clock div 
  // to the hours, minutes, and seconds of the current time
  clockDiv.innerText = (hours + ":" + minutes + ":" + seconds);

  setInterval(displayTime, 999);
}

// This runs the displayTime function the first time
displayTime();




1 个答案:

答案 0 :(得分:3)

问题在于,通过将脚本标记放入头部,它会在文档的其余部分(包括时钟div)加载之前执行。因此clockDiv未定义,访问innerText会导致抛出异常,从而停止执行(在设置间隔之前)。

一种解决方案是将事件监听器附加到DOMContentLoaded事件(对于IE8 / 9到readystatechange),或者(可能更简单)将脚本标记移动到正文的末尾。