Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 1 da Aula 4 - Coleções e loops

Qual é a necessidade de indicar o índice do array ao selecionar os tds das classes nomeTd, pesoTd, alturaTd e imcTd com "[0]"? Já que o "trAtual" já possui a referência de qual elemento tr está sendo selecionando através da variável de controle "posicaoDoTrAtual".

Grato!

var trs = document.getElementsByClassName("paciente"); //cria-se um array "trs" com todos os elementos tr do html com a class "paciente".

for (var posicaoDoTrAtual = 0; posicaoDoTrAtual <= trs.length - 1; posicaoDoTrAtual++) {

    var trAtual = trs[posicaoDoTrAtual];
    var nomeTd = trAtual.getElementsByClassName("info-nome")[0]; //pega tr do nome do paciente atual
    var pesoTd = trAtual.getElementsByClassName("info-peso")[0]; // pega o tr do peso do paciente atual
    var alturaTd = trAtual.getElementsByClassName("info-altura")[0]; //pega o tr da altura do paciente atual
    var imcTd = trAtual.getElementsByClassName("info-imc")[0]; //pega o tr do imc do paciente
3 respostas
solução!

Oi Fábio, isso é necessário pois o método getElementByClassName() retorna um array.

Um jeito um pouco mais fácil de entender é ver o código assim:

var elements = trAtual.getElementsByClassName("info-nome");
var nomeTd = elements[0];

você está pegando o elemento 0 do array retornado pelo método

Hmmm. Entendi!

Mto obrigado ^^

Toda vez que eu chamo o getElementsByClassName(' ') ele cria implicitamente um array?

Não entendi como funcionou o código que o instrutor fez rsrs.

No caso foi mais ou menos assim:

var nomeTd = trAtual.getElementsByClassName("info-nome")[0];

Para rodar ao invés do 0 eu usei a variável posicaoAtual, pois aqui não estava dando certo o código e ao meu ver fazia mais sentido e acabou rodando rsrs...