此功能有什么区别:
function printTime(){
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
document.write(hours+":"+minutes+":"+seconds+"<br />");
}
setInterval('printTime()', 1000);
这个功能:
function test(){
document.getElementById("date").innerHTML = Date();
}
setInterval('test()', 1000);
这会阻止&#34; printTime&#34;从积极写入页面(而不是只发射一次),同时&#34;测试&#34;能够正常运作吗?
从我的所有实验中,我发现它仅在删除或更新上一部分时才起作用(即innerHTML)。是这样的,还是我做错了什么?
答案 0 :(得分:0)
在页面最初加载完成后调用时,document.write()
将清除当前文档并创建一个新的空白空文档。因此,您不能在定期间隔计时器中使用document.write()
来更新页面,因为它将不断创建新的空文档。
相反,您需要通过添加新元素,删除元素或更改现有DOM元素的内容来修改现有DOM。
例如,你可以这样做。
HTML:
<div id="currentTime"></div>
代码:
function printTime(){
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
document.getElementById("currentTime").innerHTML = hours + ":" + minutes + ":" + seconds;
}
setInterval(printTime, 1000);
此代码会定期使用当前时间更新currentTime
div,并且不会干扰您可能希望在该页面上运行的其他代码。