2
respostas

[Reclamação] Aula 4 código não funciona

Codigo passado em aula diferente, codigo 4 não subtrai

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


controle.forEach( (elemento) => {
    elemento.addEventListener('click', (evento) => {
        manipulaDados(evento.target.textContent, 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
  }
}
2 respostas
const controle = document.querySelectorAll("[data-controle]")


controle.forEach( (elemento) => {
    elemento.addEventListener('click', (evento) => {
        manipulaDados(evento.target.textContent, 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
  }
}

Olá Pedro! Tudo bem?

Bom, pelo código que você postou, parece que o problema está na função manipulaDados(), que não está subtraindo corretamente quando o botão de subtração é clicado.

Uma possível solução seria verificar se o valor de peca.value é maior que zero antes de subtrair, para evitar que o valor fique negativo. Dessa forma, o código ficaria assim:

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

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

Espero que essa solução ajude a resolver o seu problema! Se ainda tiver alguma dúvida, é só perguntar.

Espero ter ajudado e bons estudos!