為什么這個(gè)代碼直接調(diào)用不能顯示在文本框里?
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>計(jì)時(shí)器</title>
<script type="text/javascript">
? ?function clock(){
? ? ? var time=new Date(); ? ? ? ? ? ? ? ?
? ? ? document.getElementById("clock").value = time;
? ?}
? clock();
</script>
</head>
<body>
? <form>
? ? <input type="text" id="clock" size="50" ?/>
? </form>
</body>
</html
2016-03-18
按你寫(xiě)的代碼,會(huì)先執(zhí)行<script>里的函數(shù)clock(),再加載頁(yè)面(即id為clock的文本框)。所以當(dāng)你調(diào)用clock()函數(shù),執(zhí)行“document.getElementById("clock").value = time;”,是還沒(méi)有id=clock這個(gè)文本框的,所以就不能搜索到它,并給它賦值了。如果你把<script>整段寫(xiě)在“<input type="text" id="clock" size="50" ?/>”后面,就會(huì)發(fā)現(xiàn),是可以調(diào)用的。
再來(lái)說(shuō)為什么同樣寫(xiě)在<head>的里的js,setInterval(clock,1000)就可以完成調(diào)用。因?yàn)閟etInterval()是window對(duì)象的方法,本身定義就是【加載頁(yè)面后】每隔指定時(shí)間執(zhí)行代碼,所以用它的時(shí)候,它會(huì)在頁(yè)面加載完,即先有文本框,再調(diào)用clock(),所以“document.getElementById("clock").value = time;”這句就有了意義,就能執(zhí)行了。
2016-04-06
用onload=clock()調(diào)用試試
2016-03-11
把第11行的clock();改成:
setTimeout(clock);
就行了。
你光寫(xiě)clock()是不能執(zhí)行該函數(shù)的
2016-03-11
我也不知道。。求問(wèn)