2
respostas

DATA.ID NÃO FUNCIONA

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Usei o console.log no if para ver qual ID o item possui, e o console sai como UNDEFINED.

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 para conferir elemento nome no array itens 
    const existe = itens.find( elemento => elemento.nome === nome.value ) 

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


// Condicional para conferir se o elemento 
    if (existe) {
        itemAtual.id = existe.id
        console.log(existe.id) // aqui sai como UNDEFINED

        atualizaElemento(itemAtual)

        itens[existe.id] = 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
    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

Resolvido o problema

Estou com o mesmo problema, como você resolveu?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software