Prezad@s colegas,
Tentei fazer o desafio AluGames por conta própria e cheguei a este código:
function alterarStatus(a) {
const itemSituation = ["Devolver", "Alugar"];
let itemSelected = document.getElementById("game-" + a);
let itemSelectedImg = itemSelected.querySelector("div");
let buttonName = itemSelected.querySelector("a");
if (buttonName.innerHTML = itemSituation[0]) {
buttonName.innerHTML = itemSituation[1];
buttonName.className = "dashboard__item__button";
itemSelectedImg.className = "dashboard__item__img";
} else {
itemSelectedImg.className = "dashboard__item__img dashboard__item__img--rented";
buttonName.className = "dashboard__item__button dashboard__item__button--return";
buttonName.innerHTML = itemSituation[0];
}
}
Todavia, o que acontece na prática quando executo o projeto no navegador é que só o botão "Devolver" (que inicialmente está no jogo Takenoko [id = game-3]) parece está funcionando como imaginado (isto é, quando clico em "Devolver" o "if" entre em ação, trocando a classe e o texto do botão e a classe da imagem a fim de indicar que o jogo está disponível para aluguel). Todavia, o trecho do código referente ao "else" parece não funcionar, pois o botão "Alugar" está inerte, isto é, quando clico nele nada acontece.
Eu já assisti aos vídeos onde os instrutores explicam a solução do desafio e observei como fizeram. A lógica em termos gerais parece a mesma que adotei, contudo, utilizaram instruções diferentes para selecionar as classes da imagem e botão (.classList.remove e .classList.add).
Eu reconheço que o meu código está mais rudimentar, menos elegante que a solução correta, mas gostaria de entender POR QUE exatamente ele não está funcionando para o botão "Alugar" enquanto funciona para o botão "Devolver" e me ajudaria MUITO compreender qual foi o meu erro de lógica.
Obrigado pela atenção de tod@s!