#javascript #html #local-storage
Вопрос:
Я выполняю миссию по созданию простой веб-страницы с полем ввода и кнопкой на моей HTML-странице. Используя JavaScript, мне нужно сохранить входные данные в localstorage, с которым я начал работать. Однако, когда я нажимаю кнопку, я хочу, чтобы сохраняемое значение отображалось в новом элементе div, созданном в JavaScript, вместе с кнопкой удаления, чтобы удалить элемент из локального хранилища.
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" name="" id="inp-value">
<button id="btn">Klicka här!</button>
<script src="script.js"></script>
</body>
</html>
язык JavaScript:
const btn = document.getElementById("btn");
btn.onclick = function(){
const value = inpValue.value;
localStorage.setItem("Name", value);
};
Ответ №1:
Используйте эти
Хранилище.GetItem()
const storedName = localStorage.getItem("Name");
Хранение.Удалить элемент()
localStorage.removeItem("Name");
Документация: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
Комментарии:
1. Спасибо, но это не помогает мне отображать значение localstorage на моей веб-странице в новом div :/
2.
document.querySelector('#div_id_for_display').innerHTML = storedName;
будет работать3. script.js:8 Неучтенная ошибка типа: Не удается установить свойства null (установка «innerHTML») в HTMLButtonElement.btn.onclick появилось это сообщение об ошибке
4. У вас есть div для показа? если нет, добавьте
<div id="div_id_for_display"></div>
в свой html5. Это задание не позволяет мне создавать div внутри html, предполагается, что это делается в JavaScript при нажатии кнопки
Ответ №2:
Вот ваше решение.
Код Javascript
<script>
btnClick = function () {
var inputValue = document.getElementById("inp-value").value;
var ul = document.getElementById("list");
var li = document.createElement("li");
var listItems = ul.getElementsByTagName('li');
localStorage.setItem(`item-${listItems.length 1}`, inputValue);
var html = `<li id="item-${listItems.length 1}"><div><lable>${inputValue}</lable> <button onclick="removeClick(${listItems.length 1})" >X</button></div> </li>`
ul.innerHTML = html;
};
removeClick = function (item_id) {
var ul = document.getElementById("list");
localStorage.removeItem(`item-${item_id}`);
ul.removeChild(ul.childNodes[item_id]);
}
</script>
HTML
<body>
<input type="text" name="" id="inp-value">
<button id="btn" onclick="btnClick()">Klicka här!</button>
<ul id="list">
</ul>
</body>