Boa tarde,
quando eu insiro uma nova quantidade com o mesmo item, na tela a tag strong some, fica apenas o número da quantidade e a descrição não aparece. E as quantidade não estão somando, apenas se sobrescrevendo.
Este curso vai me ajudar muito no estágio, caso eu consiga entender o porque deste erro.
Obrigada pessoal :)
const form = document.getElementById("novoItem");
const lista = document.getElementById("lista");
const itens = JSON.parse(localStorage.getItem("itens")) || [];
console.log(itens);
itens.forEach((elemento) => {
criaElemento(elemento);
});
form.addEventListener("submit", (e) => {
e.preventDefault();
const nome = e.target.elements["nome"];
const quantidade = e.target.elements["quantidade"];
const existe = itens.find((elemento) => elemento.nome === nome.value);
const itemAtual = {
nome: nome.value,
quantidade: quantidade.value,
};
if (existe) {
itemAtual.id = existe.id;
atualizaElemento(itemAtual);
} else {
itemAtual.id = itens.length;
criaElemento(itemAtual);
itens.push(itemAtual);
}
localStorage.setItem("itens", JSON.stringify(itens));
nome.value = "";
quantidade.value = "";
});
function criaElemento(item) {
const novoItem = document.createElement("li");
novoItem.classList.add("item");
const numeroItem = document.createElement("strong");
numeroItem.innerHTML = item.quantidade;
novoItem.dataset.id = item.id;
novoItem.appendChild(numeroItem);
novoItem.innerHTML += item.nome;
lista.appendChild(novoItem);
}
function atualizaElemento(item) {
document.querySelector(`[data-id="${item.id}"]`).innerHTML = item.quantidade;
}