0
respostas

[Sugestão] Resolvendo de outra maneira

Estudando melhor o exercício por achar estranha a quantidade de funções, cheguei à conclusão que era possível concatenar o tipo de ingresso através do ID, já que no HTML, por sorte, são iguais os resultados do ".value" do tipo de ingresso e o ID que acompanha o "qtd-" de cada tipo.

Na prática, deu certo, e fiz algumas verificações adicionais. Existe algum erro no código? Inclusive gostaria de saber se tem alguma diferença do Number para ParseInt.

function comprar(){
    let quantidade = Number(document.getElementById('qtd').value);
    let tipoDeIngresso = document.getElementById('tipo-ingresso').value;
    let ingressosRestantes = Number(document.getElementById(`qtd-${tipoDeIngresso}`).textContent);
    if (quantidade >= 1) {
        if (quantidade > ingressosRestantes){
            alert('Não é possível comprar mais ingressos deste tipo, eles estão esgotados!');
            document.getElementById('qtd').value = '';
            return;
        }
        document.getElementById(`qtd-${tipoDeIngresso}`).textContent = document.getElementById(`qtd-${tipoDeIngresso}`).textContent - quantidade;
    } else {
        alert('A quantidade não é válida.');
        return;
    }
    document.getElementById('qtd').value = '';
}