Я не могу отобразить дату, если я поместил ее в часть кода . Но он появится при размещении после

#html

Вопрос:

Я новичок в HTML и в настоящее время пытаюсь, чтобы мой код отображал время в текстовом поле Текущая дата. Однако, когда код будет помещен в <head> раздел, время и дата не будут отображаться. Он будет отображаться только тогда, когда код будет размещен после <body> раздела. Есть ли причины для того, чтобы это было так?

            function getDate() {
            var todaydate = new Date(); 
            var day = todaydate.getDate();
            var month = todaydate.getMonth()   1;
            var year = todaydate.getFullYear();
            var hours = todaydate.getHours();
            var minutes = todaydate.getMinutes();
            var seconds = todaydate.getSeconds();
            var datestring = (day   "/"   month   "/"   year   ' '   hours   ':'   minutes   ':'   seconds);
            document.getElementById("Date").value = datestring;
        }
        getDate()
        setInterval(getDate, 1000);
      

Комментарии:

1. Не могли бы вы, пожалуйста, добавить свой HTML

Ответ №1:

Ну , он будет работать только после id="Date" того, как будет создан, как JavaScript будет по ошибке, если вы используете его до его создания, вы увидите ошибку, так как нет элемента с таким именем.

Поставьте свое script » до » и «после id="Date" » и посмотрите на разницу.

Поэтому всегда рекомендуется ставить внизу html и рядом </body> с тегом

Смотрите здесь, в приведенном ниже фрагменте (при script размещении после id="Date" ) :

 <div id="Date"></div>

<script>
  function getDate() {
    var todaydate = new Date();
    var day = todaydate.getDate();
    var month = todaydate.getMonth()   1;
    var year = todaydate.getFullYear();
    var hours = todaydate.getHours();
    var minutes = todaydate.getMinutes();
    var seconds = todaydate.getSeconds();
    var datestring = (day   "/"   month   "/"   year   ' '   hours   ':'   minutes   ':'   seconds);
    document.getElementById("Date").innerHTML = datestring;
  }
  getDate()
  setInterval(getDate, 1000);
</script> 

Также смотрите приведенный ниже фрагмент (при script размещении ранее id="Date" ) :

 <script>
  function getDate() {
    var todaydate = new Date();
    var day = todaydate.getDate();
    var month = todaydate.getMonth()   1;
    var year = todaydate.getFullYear();
    var hours = todaydate.getHours();
    var minutes = todaydate.getMinutes();
    var seconds = todaydate.getSeconds();
    var datestring = (day   "/"   month   "/"   year   ' '   hours   ':'   minutes   ':'   seconds);
    document.getElementById("Date").innerHTML = datestring;
  }
  getDate()
  setInterval(getDate, 1000);
</script>

<div id="Date"></div> 

Это выдаст ошибку, так как до сих пор не id="Date" определено