[英]Can someone explain this JavaScript Real-time clock to me?
<html>
<head>
<script type="text/javascript">
function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
h=checkTime(h);
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>
我只是不太了解這兩行:
document.getElementById('txt').innerHTML=h+":"+m+":"+s;
t=setTimeout('startTime()',500);
有人可以用語言解釋嗎? getElementById('txt'),innerHTML和setTimeout('startTime()',500)有什么作用?
第一行獲取頁面上的id
屬性為txt
的元素(在本例中為<div>
),並將內容(innerHTML)設置為具有格式時間的字符串。
第二行在JavaScript中設置了一個計時器,以在500毫秒后再次調用同一函數。 本質上是下次更新時鍾。 請注意,這是每半秒一次。 它的值可能應該為1000。
如果查看HTML,則會看到<div id="txt">
。 getElementById('txt')
方法完全像聽起來那樣,它獲取具有ID txt
的<div>
。 innerHTML
屬性將獲取<div>
內部的內容,並使您也可以更改其中的內容。
setTimeout()
是一種允許您延遲執行特定功能的方法。 它接受功能和時間(以毫秒為單位)。 在這種情況下,將在500毫秒后調用startTime()
函數。
我的猜測是,它在那里允許整個DOM樹在運行功能之前加載。
我讀錯了代碼。 setTimeout()
調用用於遞歸調用startTime()
但會插入500ms的延遲,因此瀏覽器將不會凍結嘗試運行無限循環的過程。
可以為每個HTML元素分配一個id
屬性,該屬性對其進行唯一定義。
編碼
document.getElementById('txt')
返回對DOM對象的引用,該引用代表ID為txt的某些HTML元素。
該對象的innerHTML
屬性表示該元素內部的HTML。 如果您為該屬性分配一個字符串,則該字符串將替換以前的HTML
setTimeout
函數設置超時,以便一旦提供的超時(以毫秒為單位)到期,它將執行提供的功能。
就你而言
setTimeout('startTime()',500);
將在500毫秒內執行功能startTime
。
setTimeout
返回一個標識,您可以使用該標識在以后取消請求。
您可以在MDN上找到有關getElementById和setTimeout的更多信息,也可以通過一些明智的Google搜索(或Binging或Lycosing或其他方式)找到更多信息
document.getElementById('txt')
告訴瀏覽器您要操作ID為“ txt”的元素(在本例中為空div)。
.innerHTML
部分意味着您只需要將div內部的HTML更改為下一個指定的特定值。
setTimeout('startTime()',500)
用於在一定時間后執行函數。 第一個參數( startTime()
)是要執行的函數,第二個參數( 500
)表示執行該函數之前要等待的毫秒數。 當setTimeout
調用它所在的函數時,這意味着頁面將每500毫秒(或指定的任何毫秒數)不斷循環該函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.