1
resposta

Erro no forEach e ao clicar no somar e subtrair

esta dando erro no forEach, n sei o que fazer. E tambem estava dando erro quando clicava para subtrair ou somar, dava typeError!

JS:

 const controle = document .querySelector (" [data-controle]")

controle.forEach( (elemento) =› {
elemento. addEventListener('click',
(evento) =› {

})
manipulaDados (evento. target . dataset. controle, evento.target.parentNode)

})

function manipulaDados (operacao, controle)  {
const peca = controle. querySelector (" (data-contador ]")


if (operacao ===
"_") {

peca.value = parseInt (peca.value) - 1;

} else {

peca.value = parseInt (peca. value) + 1;
}

1 resposta

Olá Joyce, tudo bem?

Há alguns erros em seu código devido a certos fatores, como, por exemplo, não é permitido deixar um espaço após o ponto como em evento.[ space ]target dentre outros, ao executar funções tem que ser tudo junto, outra observação é que devemos utilizar ao invés do "=›" devemos usar o => a setinha é feita o "CTRL + .(ponto)" e por fim utilizar o document.querySelectorAll, seu código reparado fica assim:

const controles = document.querySelectorAll("[data-controle]");

controles.forEach( (elemento) => {
    elemento.addEventListener('click', (evento) => {
        manipulaDados(evento.target.dataset.controle, evento.target.parentNode)
    })
})

function manipulaDados(operacao, controle) {
    const peca = controle.querySelector("[data-contador]")

    if(operacao === "-") {
        peca.value = parseInt(peca.value) - 1
    } else {
        peca.value = parseInt(peca.value) + 1
    }
}

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!