Reputation: 1053
I'm trying to output an array of items to a list. The problems is when I click submit it's adding all the array items to each list item instead of one each time.
JSFIDDLE: https://jsfiddle.net/b7Lwbrof/
Thanks!
var itemList = [];
var container = document.getElementById('container');
// On click
document.getElementById('submit').addEventListener("click", function(){
var itemValue = document.getElementById('itemValue').value;
// Push to array
itemList.push(itemValue);
// Append to List
for(i=0; i<itemList.length; i++) {
var items = document.createElement("li");
document.getElementById('container').appendChild(items);
items.innerHTML = itemList[i];
}
})
Upvotes: 0
Views: 2724
Reputation: 4565
You don't need loop then, just append the item after it has been push to the itemList.
document.getElementById('submit').addEventListener("click", function(){
var itemValue = document.getElementById('itemValue').value;
// Push to array
itemList.push(itemValue);
// Append to List
var items = document.createElement("li");
document.getElementById('container').appendChild(items);
items.innerHTML = itemList[itemList.length-1];
})
Upvotes: 2
Reputation: 93183
items.innerHTML = itemList[itemList.length - 1] // get the last
and NOT
items.innerHTML = itemList[i]
And remove the loop as @digit said .
Fiddle here
Upvotes: 2