Tentei deixar o código o menor possível
function comprar() {
//Pega nome e quantidade de ingressos.
let tipoIngresso = document.getElementById("tipo-ingresso").value;
let quantIngresso = document.getElementById("qtd").value;
//Inicializa a variável para pegar a quantidade disponível para aquele determinado ingresso.
let quantDisp = document.getElementById(`qtd-${tipoIngresso}`);
//Pega a quantidade disponível de ingressos (tentei pegar o innerHTML direto no quantDisp, mas resetava toda vez que rodava a função, não sei por que.).
let quantDispDoIngresso = quantDisp.innerHTML;
//Verifica se a quantidade de ingressos escolhida não é maior que a quantidade disponível, tive que usar parseint pois não estava funcionando só com a variável, acho que deve ter algo a ver com valor de String, mas não entendo muito essa parte.
if (parseInt(quantIngresso) > parseInt(quantDispDoIngresso)) {
alert(`Quantidade indisponível para ${tipoIngresso}`);
//Verifica se a quantidade escolhida não é menor que 0.
} else if(quantIngresso <= 0) {
alert("Você deve comprar pelo menos 1 ingresso!")
//Escreve na tela o número atualizado de ingressos disponíveis.
} else {
quantDisp.innerHTML = quantDispDoIngresso - quantIngresso;
}
//Reseta a quantidade escolhida.
document.getElementById("qtd").value = "";
}