2
respostas

Não consigo fazer o id funcionar

Não sei o que tem de errado no código, mas não funciona.


const form = document.getElementById('novoitem')

const lista = document.getElementById('lista')

const itens = JSON.parse(localStorage.getItem('itens')) || []

itens.forEach((elemento) => {
    criarElemento(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)

    console.log(existe)

    const itemAtual = {
        'nome': nome.value,
        'quantidade': quantidade.value
    }

    if (existe) {
        itemAtual.id = existe.id

        atualizaElemento(itemAtual)

    } else {
        itemAtual.id = itemAtual.length

        criarElemento(itemAtual)

        itens.push(itemAtual)
    }



    localStorage.setItem('itens', JSON.stringify(itens))

    nome.value = ""
    quantidade.value = ""
})


function criarElemento(item) {

    const novoitem = document.createElement('li')

    novoitem.classList.add('item')

    const numeroItem = document.createElement('strong')

    numeroItem.innerHTML = item.quantidade

    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
}
2 respostas

Mostrou algum erro no console??

Eu estava olhando o seu código e vi que tem alguns momentos que você esta usando ' ' no lugar de " ".

Ex no seu código esta

const itemAtual = {
        'nome': nome.value,
        'quantidade': quantidade.value
    }

troca por

const itemAtual = {
        "nome": nome.value,
        "quantidade": quantidade.value
    }

No

localStorage.setItem('itens', JSON.stringify(itens))

troca por

localStorage.setItem("itens", JSON.stringify(itens));