как вывести переменную из JavaScript в HTML, ошибка TypeError: Cannot set properties of null (setting 'textContent')

в консоль кстати говоря спокойно все выводится, пробовал названия менять переменных, пробовал ставить id в p, h3, div, ничего не помогло.

document.querySelector('#rrr').textContent = 'tyujtyut';

var old = new Date(2021, 0, 3, 12, 35, 0);
var current = new Date();

var days = Math.floor((current - old) / (1000 * 3600 * 24));

var hourse = Math.floor(current.getHours() - old.getHours());
var minutes = Math.floor(current.getMinutes() - old.getMinutes());
var seconds = Math.floor(current.getSeconds() - old.getSeconds());


if (hourse < 0) {
  hourse = hourse + 24;
}

if (minutes < 0) {
  minutes = minutes + 60;
}

if (seconds < 0) {
  seconds = seconds + 60;
}

var data = (days + ' дней ' + hourse + ':' + minutes + ':' + seconds);

console.log(data);

document.querySelector('#timedata').textContent = data;
<nav>
  <h1 class="q">этому сайту уже:</h1>
  <div id="rrr">gg</div>
  <h3 id="timedata" class="b">loading)</h3>
</nav>


Ответы (1 шт):

Автор решения: 4eLoMeN

script src="main.js"></script> - нужно писать в самом низу <body>, а написал его в самом верху.

так как я посмотрел много видосов на эту тему, я вспомнил, что document.querySelector('#...').textContent = ...; работает таким образом, что, выполняя код, он смотрит на каждую строку по порядку, и, так как <script> был в самом верху, он там и был зациклен, и не мог найти нужный id потому, что между body> и <script ничего не было.

→ Ссылка