queria que explicasse melhor o evento.target.parentNode na função e porque trocamos o document pela variável controle que contem o evento.target.parentNode. O codigo:
elemento.addEventListener("click", (evento) => {
manipulaDados(evento.target.textContent, evento.target.parentNode)
}
function manipulaDados(operacao, controle) {
const peca = controle.querySelector(".controle-contador")
if (operacao === "-") {
peca.value = parseInt(peca.value) - 1
} else {
peca.value = parseInt(peca.value) + 1
}
}