不知道分析的對(duì)不對(duì),實(shí)踐出來(lái)是這樣的
1、javascript代碼必須放到form表單下面代碼才可以正常執(zhí)行,不然會(huì)報(bào)錯(cuò)告你document.getElementById("clock")是個(gè)空值,獲取不到,
2、在setInterval()中調(diào)用clock函數(shù)的時(shí)候,只有寫成clock,時(shí)間才會(huì)間隔刷新顯示,如果寫成clock(),時(shí)間是一直不會(huì)變得
2015-11-26
是的。但是總結(jié)的有點(diǎn)兒謬誤的地方,我給你指出來(lái)
1、javascript并不是必須放到form表單下才可以正常運(yùn)行的。
?例如(script在前,clock在后):
? 改成(div在前,script在后):
? ?這個(gè)才是本質(zhì)原因。
? 解決辦法有3:
? ?a、在domReady后再查詢,保證所有dom都構(gòu)建好了
? ?b、在window load后再查詢,頁(yè)面整個(gè)加載好了,dom早就ready了
? ?c、就是我寫的第二個(gè)例子,再要查詢的標(biāo)簽后面獲取它,因?yàn)榫W(wǎng)頁(yè)是從上往下執(zhí)行,寫在后面,肯定能保證
????????要查詢的dom已經(jīng)構(gòu)建了
2、setInterval(clock,1000)
? ? ?setInterval(clock(),1000)
? ? ?這兩種寫法并不一樣,雖然看起來(lái)很像,
? ? ?第一種是把clock這個(gè)函數(shù)作為setInterval第一個(gè)參數(shù)
? ? ?第二種是吧clock的執(zhí)行結(jié)果作為第一個(gè)參數(shù)
? ? ?當(dāng)然,第二種如果clock執(zhí)行之后返回值是一個(gè)函數(shù),也是可以的。但一般沒(méi)人這樣做。。