I would like to store dynamically generated list items in local Storage as separate entries. I’ve stored them in a single key/value pair, so all the list items are one string. How to store them as individual key/value pairs in local Storage. I want to target them individually and delete them from the UI and localestorage.
var inputValue = document.getElementById('myText');
var itemsArr = [];
var p = document.getElementById('pos');
var storedValues = localStorage.getItem("myItems")
// Add button, enter data make list
var btn = document.getElementById('btn');
btn.addEventListener('click', insertHTML);
function insertHTML(e) {
if(inputValue.value === ''){
alert("Please enter valid data!");
}else{
p.insertAdjacentHTML('beforeend',
`<li id="item"><input type="checkbox" id="check">
<span>${inputValue.value}</span>
<span><img src="delicon.png" class="delCrss"></span></li>`)
}
itemsArr.push(inputValue.value);
store();
clearInput();
}
function store(){
localStorage.setItem("myItems", p.innerHTML);
}
//Keep data after page refresh or closing browser
function getValues(){
var storedValues = localStorage.getItem("myItems")
if(storedValues){
p.innerHTML=storedValues;
}
}
getValues()
//Press enter key to add input data to list
var input = document.querySelector('body');
input.addEventListener("keyup", function(e){
if(e.keyCode === 13 && inputValue.value){
insertHTML();
}else if(inputValue.value ==='' && e.keyCode === 13){
alert("Please enter valid data!");
}
})
// Clear button clear input field
var clr = document.getElementById('clr');
clr.addEventListener('click', clearInput);
function clearInput(e){
inputValue.value = '';
}
//Delete last item button, deletes last list item
var btn2 = document.getElementById('delete');
btn2.addEventListener('click', delItem);
function delItem(e) {
var lst = document.getElementById('pos');
if(lst.hasChildNodes()){
lst.removeChild(lst.lastChild);
}
}
//Delete all button, deletes all list items from list and storage
var btn3 = document.getElementById('delAll');
btn3.addEventListener('click', deleteAll);
function deleteAll(e) {
document.getElementById('pos').innerHTML = '';
var c = confirm("Are you sure you want to delete all the items?")
if(c == true){
localStorage.clear();
}else{
getValues();
store()
}
}
//deletes individual items from list by clicking X
var ul = document.querySelector('#pos');
ul.addEventListener('click', function(e){
var x = e.target
console.log(x)
if(e.target.className==='delCrss'){
ul.removeChild(e.target.parentNode.parentNode);
localStorage.removeItem("item")
}
})