2011-08-17 98 views
1

我一直在教自己的JavaScript,我還是相當新的,我試圖使時鐘功能添加到我的網站,但是,我看不出來得到它顯示,這是我的全碼:JavaScript時鐘將無法正確顯示

<html> 
<head> 
<script type="text/javascript"> 
    function tick() { 
     var hours, minutes, seconds, ap; 
     var intHours, intMinutes, intSeconds; 
     var today; 

     today = new Date(); 

     intHours = today.getHours(); 
     intMinutes = today.getMinutes(); 
     intSeconds = today.getSeconds(); 

     if (intHours == 0) { 
      hours = "12:"; 
      ap = "Midnight"; 
     } else if (intHours < 12) { 
      hours = intHours + ":"; 
      ap = "a.m"; 
     } else if (intHours == 12) { 
      hours = "12:"; 
      ap = "noon"; 
     } else { 
      intHours = intHours - 12 
      hours = intHours + ":"; 
      ap = "p.m."; 
     } 
     if (intMinutes < 10) { 
      minutes = "0" + intMinutes + ":"; 
     } else { 
      minutes = intMinutes + ":"; 
     } 
     if (intSeconds < 10) { 
      seconds = "0" + intSeconds + " "; 
     } else { 
      seconds = intSeconds + " "; 
     } 
     timeString = hours + minutes + seconds + ap; 

     Clock.innerHTML = timeString; 

     window.setTimeout("tick();", 100); 
    } 

    //--></script> 
</head> 
<body> 
<div id="Clock" align="center" style="font-family: Verdana; font-size: 10px; color:#000000"></div> 
</body> 
</html> 

正如我所說的,我運行它,就我所看到的,它應該運行正常,因爲我說我有點新的,所以也許有人會幫幫我。

再次感謝人。

編輯:之前有人說,我完全知道有這種事情的預製工作的例子,如jQuery時鐘等,但我想從頭做一個自己。

回答

6

它沒有啓動,主要是因爲你需要至少一次最初調用該函數:

tick(); 

你在哪裏都從學習HTML和JavaScript 停止從那裏立即學習;您正在學習的代碼習慣和方法非常非常差和過時。

的問題包括:不具有

  • 一個DOCTYPE:<!DOCTYPE html>
  • 訪問div#Clock作爲全局變量Clock,其已被棄用,應該使用一個字符串是document.getElementById('Clock');
  • setTimeout,當它應該真的是setTimeout(tick, 100);
  • 使用已棄用的align屬性,當您應該使用text-align: center;在CSS
  • 使用「舊瀏覽器」通過style屬性,構成呈現分離和內容
+0

我忘了DOCTYPE,這不是真的要發佈在任何地方等,更多隻是一個戲,但感謝那:)我改變了時鐘選擇器提到,但它仍然不顯示:\ –

+0

謝謝你!我把window.onload = tick();它的美麗工作,再次感謝人! –

+2

沒問題。它應該確實是'window.onload = tick;'沒有括號。 –

-1
<html> 
<head> 
<script type="text/javascript"> 
function startTime() 
{ 
var today=new Date(); 
var h=today.getHours(); 
var m=today.getMinutes(); 
var s=today.getSeconds(); 
// add a zero in front of numbers<10 
m=checkTime(m); 
s=checkTime(s); 
document.getElementById('txt').innerHTML=h+":"+m+":"+s; 
t=setTimeout('startTime()',500); 
} 

function checkTime(i) 
{ 
if (i<10) 
    { 
    i="0" + i; 
    } 
return i; 
} 
</script> 
</head> 

<body onload="startTime()"> 
<div id="txt"></div> 
</body> 
</html> 
+1

這不是很有用,因爲它只是一個重寫,但沒有指出原始海報代碼中的錯誤。 –

+0

我沒有要求重寫,但謝謝你嘗試人。 –

2

一窮使用內聯CSS

  • ,則需要JavaScript註釋出絕招在某處運行你的函數tick()。如果你只定義它,它不會做任何事情。例如在主體onLoad事件中。

    其次,您的元素應該在var中正確設置。

    var Clock = document.getElementById('Clock'); 
    
  • +0

    Upvoted,因爲這也是對的,其他人剛剛到達那裏,謝謝你。 –

    1

    剛剛從

    window.setTimeout("tick();", 100); 
    } 
    

    改變你的最後兩行

    }  
    window.setInterval(tick, 1000); 
    

    演示:http://jsfiddle.net/naveen/3PQ8B/1/

    Updat你應該id來獲取元素e:錯過了document.getElementById部分:)