I am learing basics of JavaScript and I have coded a simple shopping list with a delete button. This option works with old items, but when I add a new one and try to delete it, it does not work properly.
HTML:
var lista = document.querySelector('#list')
document.getElementById('add').addEventListener('click', function() {
var deletebtn = "<span class='close'>X</span>"
var newValue = document.getElementById('new_item').value + ' ' + deletebtn;
var newItem = document.createElement('li');
newItem.innerHTML = newValue;
lista.appendChild(newItem);
}, false)
var closebtn = document.getElementsByClassName('close');
for (var i = 0; i < closebtn.length; i++) {
closebtn[i].addEventListener('click', function() {
this.parentElement.style.display = 'none';
})
}
<div id=”page”>
<h1 id=”header”>Shopping list</h1>
<h2>What should I buy</h2>
<ul id="list">
<li id="one">Milk<span class="close">X</span></li>
<li id="two">Apples<span class="close">X</span></li>
<li id="three">Oranges<span class="close">X</span></li>
<li id=”four”>Vodka<span class="close">X</span></li>
</ul>
<input type="text" placeholder="Type in a new item" id="new_item"><button id='add'>ADD</button>
</div>