@KlinDev
Интересуют различные вопросы

Почему появляется в консоли ошибка Uncaught TypeError: Cannot set property 'innerHTML' of null?

Пытался написать таймер на JS. В консоли браузера появилась ошибка Uncaught TypeError: Cannot set property 'innerHTML' of null. Гуглил данную проблему. В основном пишут про не полную загрузку DOM документа при выполнении скрипта. Добавил в начало кода window.addEventListener('DOMContentLoaded', function(){ };
let deadline = '2018-04-20';
window.addEventListener('DOMContentLoaded', function(){
	function getTimeRemaining(endtime) {
		let t = Date.parse(endtime) - Date.parse(new Date()),
		seconds = Math.floor( (t/100) % 60 ), 
		minutes = Math.floor( (t/1000/60) % 60 ),
		hours = Math.floor( (t/(1000*60*60)) );
		return {
			'total': t,
			'hours': hours,
			'minutes': minutes,
			'seconds': seconds
		};	
	};

	function setClock(id, endtime) {

			let timer = document.getElementById(id),
				hours = timer.querySelector('.hours'),
				minutes = timer.querySelector('.minutes'),
				seconds = timer.querySelector('.seconds');

				function updateClock() {
					let t = getTimeRemaining(endtime);
					hours.innerHTML = t.hours;
					minutes.innerHTML = t.minutes;
					seconds.innerHTML = t.seconds;

					if(t.total <= 0) {
						clearInterval(timeInterval);
					}  
				};

				updateClock();
				let timeInterval = setInterval(updateClock, 1000);
	};

	setClock('timer', deadline);
});

Ничего не поменялось. Какие еще причины появления данной ошибки могут быть? Спасибо.
  • Вопрос задан
  • 3965 просмотров
Решения вопроса 1
@Ilya33
Без верстки трудно сказать.
Ошибка скорее всего заключается в том, что не удаётся найти элемент hours

хорошо бы посмотреть какой id прилетает в setClock ( console.log(id) ) и убедиться что элемент с таким id есть в вёрстке. И что внутри него есть элементы с '.hours', '.minutes' и '.seconds' соответственно
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы