Uncaught TypeError: Невозможно установить свойство 'innerText' для null - для сценария обратного отсчета - PullRequest
0 голосов
/ 13 мая 2019

Я получаю 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» - ошибки не отображались, пока я не добавил обратный отсчет на вторую страницу.

Еще раз спасибо за помощь, я чувствую, что пропускаю что-то простое, но я не знаю.

1 Ответ

1 голос
/ 13 мая 2019

Линия

var target = document.querySelector(target);

определенно устанавливает var target в ноль.Так что это именно то, что говорит вам переводчик.

Я полагаю, он не может найти #timer3.

...