为了账号安全,请及时绑定邮箱和手机立即绑定

这个js document.write();为什么不可以更新时间?希望来个原理

这个js document.write();为什么不可以更新时间?希望来个原理

泛舟湖上清波郎朗 2019-04-11 14:11:33
<!DOCTYPE html>Document<br> //setInterval(&quot;time()&quot;,1000)<br> function time(){<br> var date1 = new Date(); //获取当前时间对象;<br> // document.write(date1);<br> var y = date1.getFullYear(); //获取4位数的年<br> var m = date1.getMonth() + 1; //获取月份<br> if (m &lt; 10) {<br> m = &quot;0&quot; + m; //单位数月份凑成双的<br> }<br> var t = date1.getDate();<br> if (t &lt; 10) {<br> t = &quot;0&quot; + t; //单位数月份凑成双的<br> }<br> var w = date1.getDay();<br> if (w == 0) {<br> w = &quot;星期日&quot;;<br> } else if (w == 1) {<br> w = &quot;星期一&quot;;<br> } else if (w == 2) {<br> w = &quot;星期二&quot;;<br> } else if (w == 3) {<br> w = &quot;星期三&quot;;<br> } else if (w == 4) {<br> w = &quot;星期四&quot;;<br> } else if (w == 5) {<br> w = &quot;星期五&quot;;<br> } else if (w == 6) {<br> w = &quot;星期六&quot;;<br> }</p> <pre><code> var h = date1.getHours(); if (h &lt; 10) { h = &quot;0&quot; + h; // } var p = date1.getMinutes(); if (p &lt; 10) { p = &quot;0&quot; + p; } var s = date1.getSeconds(); if (s &lt; 10) { s = &quot;0&quot; + s; } var f = y + &quot;年&quot; + m + &quot;月&quot; + t + &quot;日&quot; + w + h + &quot;时&quot; + p + &quot;分&quot; + s + &quot;秒&quot;; // document.write(f); document.getElementById(&quot;div1&quot;).innerHTML=f } setInterval(&quot;time()&quot;,1000) &lt;/script&gt; </code></pre> <p></head></p> <p><body><br> <div id="div1"></div></p> <p></body></p> <p></html></p>
查看完整描述

5 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

文档流关闭后不能用document.write,要不输出流会覆盖当前所有的内容包括js代码,所以只会输出一次,而不是继续更新


查看完整回答
反对 回复 2019-05-13
?
呼唤远方

TA贡献1856条经验 获得超11个赞

write输出的内容覆盖当前页面所有内容,包括js代码,计时器全部被释放了,计时器不会继续继续。。,除非你又重新输出更新的js代码

查看完整回答
反对 回复 2019-05-13
?
九州编程

TA贡献1785条经验 获得超4个赞

https://img1.sycdn.imooc.com//5cd91e06000151de10630994.jpg

查看完整回答
反对 回复 2019-05-13
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

document.write()一般只在页面加载完成之前使用。
当页面加载完成之后,文档流会自动关闭,就不要用document.write()了
再用document.write()就是重新创建一个新的页面。
这个新页面的源代码就是document.write()输出的字符串。

不过加载完成之后也可以用document.open()重新开启文档流,就可以继续用document.write()了
但用document.write()每次都只是在文档的最后增加新的内容,不能替换指定地方的内容。
要替换指定地方的内容,就应该用 innerHTML。


查看完整回答
反对 回复 2019-05-13
  • 5 回答
  • 0 关注
  • 606 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信