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

Acesso ao conteúdo da Tag

Pessoal, boa tarde!

Alguém consegue me explicar por gentileza o significado do "0" em colchetes no getElementsByClassName? () <section> <table> <tr> <th>Nome</th> <th>Peso(kg)</th> <th>Altura(m)</th> <th>IMC</th> </tr> <tr class="paciente"> <td class="info-nome" id="nome-1">Leonardo</td> <td class="info-peso" id="peso-1">57</td> <td class="info-altura" id="altura-1">1.67</td> <td class="info-imc" id="imc-1"></td> </tr> <tr class="paciente"> <td class="info-nome" id="nome-2">Paulo</td> <td class="info-peso" id="peso-2">100</td> <td class="info-altura" id="altura-2">2.00</td> <td class="info-imc" id="imc-2"></td> </tr> </table> </section> () () var nossosTrs = document.getElementsByClassName("paciente"); var posicaoDoTrAtual = 0 while (posicaoDoTrAtual <= nossosTrs.length - 1) { var trAtual = nossosTrs[posicaoDoTrAtual]; console.log(trAtual.getElementsByClassName("info-nome")[0]); console.log(trAtual.getElementsByClassName("info-nome")); console.log(trAtual.getElementsByClassName("info-nome")[0].textContent); console.log(trAtual.getElementsByClassName("info-nome").textContent); posicaoDoTrAtual++; } () Eu entendi que pega as tags com classe "paciente" eu estou pegando um vetor de tgas, mas porquê eu específico [0] (eu entendi que esse 0 seria a posição inicial ou algo assim) quando eu vou pegar as tags de classe "Info-nome" se não posição 0 das tags "paciente" eu só tenho uma tag "info-nome" nela?

2 respostas
solução!

Felipe, nesse caso, a função getElementsByClassName() retorna sempre uma lista (note a palavra elements no plural), ou seja o objeto que a função te devolve sempre será uma lista com todos os elementos cujo nome da classe seja o valor dado.

O [0], no caso serve para acessar o primeiro elemento dessa lista, pois em programação normalmente se conta a partir do número 0 (se quisermos o segundo elemento, utilizaríamos o [1] por exemplo).

Por fim, mesmo que só exista um elemento com a classe informada em seu HTML, a função getElementsByClassName() vai sempre te retornar uma lista, mesmo que tenha apenas 1 valor, então sei valor deverá ser acessado da mesma forma.

Ah sim!!! Mesmo se tiver só um elemento o retorno é uma lista, só que com um elemento neh!!!

XD

Agora sim faz todo o sentido. Obrigado pelo help!!! :)