Problems:
When I enter something and click SEND the elements are sorted as a list <ul><li></li></ul>
(good thing) but after reloading the page the data appears as a string: one,two,three
.
If after reloading the page you type something and click SEND the new item will appear under the string as a list.
But if you try reloading one more time you will see a new string.
You won't see one,two,three,new element
.
But only: new element
.
As if the data only lasted one session.
const input = document.getElementById("input");
const btn = document.getElementById("btn");
const container = document.getElementById("container");
// ARRAY
const tasks = [];
// WHEN USER CLICK BUTTON
btn.addEventListener("click", addTask);
// ADD A TASK
function addTask() {
tasks.push(input.value);
let li = document.createElement("li");
li.appendChild(document.createTextNode(input.value));
container.appendChild(li);
localStorage.setItem("task", tasks);
}
container.innerText = localStorage.getItem("task");
<input type="text" id="input">
<button id="btn">SEND</button>
<ul id="container">
</ul>
UPDATE
I tried with stringify()
and parse()
, but the problem persists. After reloading the page, the list appears as a string and old values disappear and are replaced by new ones.
const input = document.getElementById("input");
const btn = document.getElementById("btn");
const container = document.getElementById("container");
// ARRAY
const tasks = [];
// WHEN USER CLICK BUTTON
btn.addEventListener("click", addTask);
// ADD A TASK
function addTask() {
tasks.push(input.value);
let li = document.createElement("li");
li.appendChild(document.createTextNode(input.value));
container.appendChild(li);
localStorage.setItem("task", JSON.stringify(tasks));
}
container.innerText = JSON.parse(localStorage.getItem("task"));