Время обновления Javascript в текстовом поле HTML; getElementByID ошибка

Я пытаюсь отображать время каждую секунду на HTML-странице в текстовом поле, но я просто получаю сообщение об ошибке, что getElementByID не существует. Мой код ниже. С приведенным ниже кодом ничего не отображается. не могли бы вы поправить меня или указать, что мне не хватает?

function getTime() {
     var currentDate = new Date();
     var date = currentDate.toLocaleString();
     document.getElementById("clock").innerHTML = date;
}

var repeatedTime = setInterval("getTime()", 1000);
getTime();

Вот мой HTML-код:

<!DOCTYPE html>
<html>
<head>
     <script src = "clockjavascript.js" ></script>
</head>
<body>
    <form>
        <input id = "clock" type = "text" />
    </form>
</body>
</html>

Спасибо Даниэлю Сабо за то, что он решил эту проблему. Ниже приведен правильный javascript, который работает с HTML. Мне нужно было изменить document.getElementById ("часы"). InnerHTML на .value.

function getTime() {
    var dateObject = new Date();
    var dateString = dateObject.toLocaleString();
    document.getElementById("clock").value = dateString;
}

var repeatedTime = setInterval(getTime, 1000);
getTime();

изменить ID -> Id

Egor Egorov 16.03.2018 00:17

Это document.getElementById(). d - строчные буквы.

Spencer Wieczorek 16.03.2018 00:17

Я изменил его на document.getElementByID, но он по-прежнему не работает.

Gideon 16.03.2018 00:18

Попробуйте setInterval(getTime, 1000); вместо setInterval("getTime()", 1000);

Daniel Szabo 16.03.2018 00:19

Почему JSON работает только с JS? Кто-нибудь может ответить на этот вопрос, который я могу найти?

Gideon 23.01.2019 08:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
470
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ваш синтаксис немного сбился - это

getElementById 

Скорее, чем

getElementByID

Последнее не существует как метод.

Согласно приведенным выше комментариям, d - это строчная буква Id.

DKyleo 16.03.2018 00:24
Ответ принят как подходящий

Четыре вопроса

  • Используйте getElementById вместо getElementByID ("d" должно быть в нижнем регистре ")
  • Используйте document.getElementById("clock").value вместо innerHTML для управления содержимым текстового поля
  • Попробуйте setInterval(getTime, 1000); вместо setInterval("getTime()", 1000);
  • Переместите тег <script src = "clockjavascript.js"></script> в нижнюю часть страницы, непосредственно перед тегом </body>. Таким образом, обрабатываемый элемент <input> визуализируется и становится доступным для действий при выполнении сценария.

Для быстрой проверки вы можете вставить это в консоль браузера и смотреть, как идет время.

function getTime() {
   var currentDate = new Date();
   var date = currentDate.toLocaleString();
   console.info(date);
}

var repeatedTime = setInterval(getTime, 1000);
getTime();

Я попробовал оба эти изменения, веб-страница все еще не загружает время

Gideon 16.03.2018 00:25

Вы получаете ошибки или вообще ничего не происходит?

Daniel Szabo 16.03.2018 00:26

"Невозможно установить свойство 'innerHTML' равным нулю" - это ошибка

Gideon 16.03.2018 00:27

@Gideon Хорошо, это хороший прогресс. Это означает, что скрипт не может найти элемент с идентификатором «clock». Попробуйте переместить тег скрипта в конец документа, непосредственно перед тегом </body>. Таким образом, элемент ввода имел шанс отрисоваться до того, как механизм javascript попытается его найти. :)

Daniel Szabo 16.03.2018 00:30

Спасибо; последний код для javascript находится здесь. Помогло значение document.getElementById ("clock"). Value. Мне нужна была часть значения вместо innerHTML. функция getTime () {var currentDate = new Date (); var date = currentDate.toLocaleString (); document.getElementById ("часы"). значение = дата; } var RepeatedTime = setInterval (getTime, 1000); getTime ();

Gideon 16.03.2018 00:55

Другие вопросы по теме