Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

o id que foi criado esta dando indefinido nao consigo achar o erro no codigo

const form = document.getElementById('novoItem');
const lista = document.getElementById("lista");
const itens = JSON.parse(localStorage.getItem("itens")) || [];

itens.forEach((elemento) => {

    criaElemento(elemento);

})

form.addEventListener('submit', (evento) =>{
    evento.preventDefault();

    const nome = evento.target.elements['nome'];
    const quantidade = evento.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.lenght;

        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
    console.log(numeroItem)
    numeroItem.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;

}

nao consigo achar o erro no código pode me ajudar obrigado

2 respostas
solução!

Oi Devals2022, tudo bem?

No seu else, a palavra length está escrita errada, assim:

else{

        itemAtual.id = itens.lenght;

Corrige para:

else {
        itemAtual.id = itens.length

Acredito que corrigindo isso vai sumir o undefined:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Um abraço e bons estudos.

muito obrigado , agradeço muito .. valeu pela ajuda