1
resposta

Duvida sobre comandos

Bom Momento.

Tentei utilizar o comando getElementById no desafio conforme codigo abaixo:

function alterarStatus(id) {
    let jogoSelecionado = document.getElementById (`game-${id}`);
    let imagemJogo = document.getElementsByClassName ("dashboard__item__img");
    let botao = document.getElementsByClassName ("dashboard__item__button");
    let nomeJogo = document.getElementsByClassName("dashboard__item__name");

    alert (nomeJogo.textContent);

}

O resultado está sendo um alert com valor indefinido, não sei dizer onde está o erro para o caso.

1 resposta

O document.getElementsById("dashboard__item__img"); retornará o elemento que possui o id com este nome dashboard__item__img mas você está pegando pela classe com o document.getElementsByClassName("dashboard__item__img") então mude o código todos para:

let imagemJogo = document.getElementsById("dashboard__item__img");
let botao = document.getElementsById("dashboard__item__button");
let nomeJogo = document.getElementsById("dashboard__item__name");

Caso você esteja utilizando classe ao invés do id.

O document.getElementsByClassName retorna um array de elementos, pois pode existir várias classes com o mesmo nome. Então quando você for pegar um elemento com document.getElementsByClassName você precisa colocar qual o índice desse elemento, se existir somente um elemento com essa classe faça assim document.getElementsByClassName("dashboard__item__name")[0], colocando o colchetes com o número do índice dentro, lembrando que arrays sempre começa com índice 0.

Então caso você está utilizando classe e não id , você precisará corrigir para :

let imagemJogo = document.getElementsByClassName("dashboard__item__img")[0];
let botao = document.getElementsByClassName("dashboard__item__button")[0];
let nomeJogo = document.getElementsByClassName("dashboard__item__name")[0];