2011-08-30 79 views
1

在以下代码document.getElementById("clock")null,它如何解决?document.getElementById(“clock”)为空?

var interval = self.setInterval("clock()", 1000); 
    function clock() { 
     var date = new Date(); 
     var hourOffset = 3; 
     date.setUTCHours(date.getUTCHours(), date.getUTCMinutes()); 
     var time = date.getTime(); 
     date.setUTCFullYear(date.getUTCFullYear(), 2, 22); 
     var dstStart = date.getTime(); 
     date.setUTCFullYear(date.getUTCFullYear(), 8, 22); 
     var dstEnd = date.getTime(); 
     if(time > dstStart && time < dstEnd) 
      hourOffset = 4; 
     date.setUTCHours(date.getUTCHours() + hourOffset, date.getUTCMinutes() + 30); 
     var output = date.getUTCHours() + ":" + date.getUTCMinutes() + ":" + date.getUTCSeconds(); 
     document.getElementById("clock").innerHTML = output; 
    } 
+1

并且在文档中是否有'clock'的'id'元素? –

+1

你有'id =“clock”'页面上的元素吗?如果元素不存在,那么返回null的唯一原因几乎就是。 – Tejs

回答

2

首先中的任何一个,你需要ID为“时钟”的元素,其次,你需要后执行该代码DOM已经准备好了,之前没有,因为否则JS就不会找到这个元素。

换句话说......添加:

<div id='clock'></div> 

并粘贴到文档中的</body>之前JavaScript代码。

3

你必须在你的代码的项目将使ID clock,你可以添加以下到您的HTML:

<div id="clock"></div> 

此外,这将是有益的,看看你的HTML。

0

getElementById将返回undefined的唯一原因是,如果没有可用于编号为clock的HTML元素。确保其中一个元素具有此ID

<p id="clock"></p> 
0

<div id="clock"></div>添加到您的页面。那就是时钟会出现的地方。

如果您需要更多帮助,请发布整个页面的HTML代码。

你可以采取不同的方式太多,如果你喜欢,例如,

<b id="clock"></b> 
<span id="clock"></span> 
<div style="color:blue" id="clock"></div> 
相关问题