未捕获的TypeError:无法将属性'innerText'设置为null-对于倒计时脚本

时间:2019-05-13 17:32:26

标签: javascript timer typeerror countdown innertext

我遇到了Uncaught TypeError:无法在我的控制台中设置错误消息的属性'innerText',其中错误只是无限期地上升。它与我正在运行的倒计时到特定日期集的脚本有关。

我尝试删除脚本来删除错误。除此之外,我不确定到底出了什么问题。除了与target.innerText = "Expired"行有关。

"use strict";

timer = function timer(target, date) {
  var target = document.querySelector(target);
  var countDownDate = new Date(date).getTime();
  setInterval(function () {
    var now = new Date().getTime();
    var distance = countDownDate - now;
    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor(distance % (1000 * 60 * 60 * 24) / (1000 * 60 * 60));
    var minutes = Math.floor(distance % (1000 * 60 * 60) / (1000 * 60));
    var seconds = Math.floor(distance % (1000 * 60) / 1000);
    target.innerText = days;

    if (distance < 0) {
      target.innerText = "Expired";
     }
  }, 1000);
};

timer("#timer1", "Jan 01, 2019 11:59:59");
timer("#timer2", "Jan 02, 2019 11:59:59");
timer("#timer3", "Jan 03, 2019 11:59:59");

任何人和所有帮助和建议,将不胜感激。

谢谢

编辑:

这是html的一部分

<div class="container">
 <div class="dates-container">
  <div class="dates-wrapper">
    <p class="date"><strong>Jan 01</strong> <span class="days-remaining"><span id="timer1"></span> Days Remaining</span></p>
    <div class="divider"></div>
  </div>
  <div class="upcoming-dates">
   <p class="date"><strong>Jan 02</strong> <span class="days-rem"> . <span id="timer2"></span> Days Remaining</span></p>
   <div class="divider"></div>
  </div>               
 </div>
</div>

它可以在主要index.html上运行,并且我尝试通过提供元素和“ timerX”的ID将倒计时添加到其他页面-错误直到我将倒计时添加到第二页才显示出来。 / p>

再次感谢您的帮助,我觉得自己忽略了一些简单的事情,但我不知道。

1 个答案:

答案 0 :(得分:1)

var target = document.querySelector(target);

绝对将var target设置为null。 这就是解释器告诉你的。

我认为找不到#timer3