首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript中的数字时钟

Javascript中的数字时钟
EN

Stack Overflow用户
提问于 2018-06-05 08:35:41
回答 1查看 508关注 0票数 0

代码用于制作数字时钟,在showTime函数中放入setTimeout函数有什么作用,同时设置textcontentInnertext有什么作用

代码语言:javascript
复制
function showTime(){
var date = new Date();
var h = date.getHours();// 0 - 23
var m = date.getMinutes(); // 0 - 59
var s = date.getSeconds(); // 0 - 59
var session = "AM";

if(h == 0){
    h = 12;
}

if(h > 12){
    h = h - 12;
    session = "PM";
}

h = (h < 10) ? "0" + h : h;
m = (m < 10) ? "0" + m : m;
s = (s < 10) ? "0" + s : s;

var time = h + ":" + m + ":" + s + " " + session;
document.getElementById("MyClockDisplay").innerText = time;
document.getElementById("MyClockDisplay").textContent = time;

setTimeout(showTime, 1000);

}

showTime();
代码语言:javascript
复制
<div id="MyClockDisplay" class="clock"></div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-05 08:45:29

您需要在showTime的底部调用setTimeout,以便每次调用showTime都会将函数排入队列,以便在1秒内再次运行-在运行时,函数将在另一秒后再次排队,依此类推。使用setTimeout递归调用函数本身是使用setInterval的另一种选择。

textContent通常比innerText更可取-参见The poor, misunderstood innerText,尽管如果你只是赋值而不是获取,这并不重要。这里不适合使用innerHTML,因为您要分配的是文本,而不是HTML标记。

使用setInterval而不是递归setTimeout将如下所示,实现完全相同的功能:

代码语言:javascript
复制
function showTime() {
  var date = new Date();
  var h = date.getHours(); // 0 - 23
  var m = date.getMinutes(); // 0 - 59
  var s = date.getSeconds(); // 0 - 59
  var session = "AM";

  if (h == 0) {
    h = 12;
  }

  if (h > 12) {
    h = h - 12;
    session = "PM";
  }

  h = (h < 10) ? "0" + h : h;
  m = (m < 10) ? "0" + m : m;
  s = (s < 10) ? "0" + s : s;

  var time = h + ":" + m + ":" + s + " " + session;
  document.getElementById("MyClockDisplay").innerText = time;
  document.getElementById("MyClockDisplay").textContent = time;
}

showTime();
setInterval(showTime, 1000);
代码语言:javascript
复制
<div id="MyClockDisplay" class="clock"></div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50690499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档