javascript - 为什么这个倒计时时钟代码会返回一个未定义的字符串?

标签 javascript

<分区>

我试图创建一个非常简单的 Javascript 时钟,它会从用户指定的时间倒计时到 0,但由于某种原因,它一直以字符串形式返回“undefined”。这是时钟的来源:

function startTimer(duration) {
  desap = duration - (new Date).getTime() / 1000;
  var timer = desap,
    minutes, seconds;
  setInterval(function() {
    minutes = parseInt(timer / 60, 10)
    seconds = parseInt(timer % 60, 10);
    minutes = minutes < 10 ? "0" + minutes : minutes;
    seconds = seconds < 10 ? "0" + seconds : seconds;
    display = "Ends in " + minutes + " mins and " + seconds + " secs";

    if (--timer < 0) {
      display = "Ended";
    }
    return display;
  }, 1000);
}

document.write(startTimer(999999999999999))

JSFiddle

最佳答案

理想情况下,我会倾向于使用 .textContent javascript 属性,而不是 document.write:

var displayTimer = document.getElementsByClassName('display-timer')[0];

function startTimer(duration) {

  setInterval(function() {
    var timer = duration - (new Date).getTime() / 1000;
    var minutes = parseInt(timer / 60, 10)
    var seconds = parseInt(timer % 60, 10);
    minutes = minutes < 10 ? "0" + minutes : minutes;
    seconds = seconds < 10 ? "0" + seconds : seconds;
    var display = "Ends in " + minutes + " mins and " + seconds + " secs";

    if (--timer < 0) {
      display = "Ended";
    }

    displayTimer.textContent = display;

  }, 1000);
}

window.addEventListener('load',function(){startTimer(999999999999999);},false);
<div class="display-timer">
</div>

关于javascript - 为什么这个倒计时时钟代码会返回一个未定义的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607182/

相关文章:

javascript - 如何让我的按钮在移动设备上工作?

Javascript(初学者): Performance issue using arbitrary numerical properties?

javascript - JQuery - 如何检查 tbody 滚动条是否已到达底部

javascript - 从对象路径检索属性,如 data.#0.elements.#0.name"

php - 是否可以仅在移动设备上提供顶级导航服务?

javascript - 在 Ionic 2/Angular 2 beta 10 中访问窗口对象

javascript - 引用对象中的公共(public)值

javascript - 在 knockout.js 中设置组合选项文本

javascript - 生成一个随机数4次不重复的Javascript?

JavaScript json 值