#javascript #html #local-storage
Вопрос:
итак, у меня есть элемент ввода с идентификатором «ответ» и кнопкой. Я добавил прослушиватель событий для кнопки и попытался вызвать функцию, которая сохраняет текст внутри ввода в локальное хранилище. Консоль сообщает мне, что «innerHTML» равен нулю, но я не уверен, что мне следует делать.
lt;input type="text" id="answer" /gt; lt;button id="button"gt;click melt;/buttongt; var inputAnswer = document.getElementById("#answer") var buttonEl = document.getElementById("button") buttonEl.addEventListener("click", saveToStorage()) function saveToStorage() { localStorage.setItem("task", inputAnswer.innerHTML); }
Ответ №1:
lt;input type="text" id="answer" /gt; lt;button id="button"gt;click melt;/buttongt; lt;script type="text/javascript"gt; var inputAnswer = document.getElementById("answer"); var buttonEl = document.getElementById("button"); buttonEl.addEventListener("click", addAnswerToLocalStorage); function addAnswerToLocalStorage() { const value = inputAnswer.value; localStorage.setItem("answer", value); } lt;/scriptgt;
Существует ошибка в получении ссылки на поле ввода. Вместо #ответ document.getElementById("#answer")
это должен быть только ответ только. Кроме того, я проверил его на своем локальном компьютере, и он работает нормально.
Комментарии:
1. спасибо, я заставил его работать, но мне просто было интересно, почему это «ответ», а не «#ответ»? Я думал, что должен нацелиться на удостоверение личности.
2. @Ted
getElementById()
ожидает только идентификатор, без ведущего хэштега. Хэштег используется при указании селектора CSS, напримерquerySelector('#answer')
.
Ответ №2:
getElementById()
ожидает идентификатор, без хэштега. Измените var inputAnswer = document.getElementById("#answer")
на var inputAnswer = document.getElementById("answer")
(удалите #
).
buttonEl.addEventListener("click", saveToStorage())
saveToStorage()
немедленно вызывает функцию, а это не то, что вам нужно. Вместо этого передайте его в качестве ссылки: buttonEl.addEventListener("click", saveToStorage)
.
Комментарии:
1. Удалите
#
изvar inputAnswer = document.getElementById("#answer")
также