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

Não funciona o código

Meu código não funciona, e porque não se usa "document" depois que colocou a var pacienteTr que recebe as posições?

Eu poderia ter feito por exemplo assim?

    var pacienteTr = TrsPacientes['posicaoAtual'];

    var tdNome = document.getElementsByClassName('info-nome')[pacienteTr];

var TrsPacientes = document.getElementsByClassName('paciente');

for(var posicaoAtual = 0; posicaoAtual <= TrsPacientes.length - 1; posicaoAtual++){

    var pacienteTr = TrsPacientes['posicaoAtual'];

    var tdNome = pacienteTr.getElementsByClassName('info-nome')[0];
    var tdPeso = pacienteTr.getElementsByClassName('info-peso')[0];
    var tdAltura = pacienteTr.getElementsByClassName('info-altura')[0];
    pacienteAtual = {nome : tdNome.textContent, 
                     peso : tdPeso.textContent, 
                     altura : tdAltura.textContent,
                     getImc : function(){
                          if(this.altura != 0){
                                var calculo = this.peso / (this.altura * this.altura);
                                return calculo;  
                              } else{
                                     alert("Altura é igual a zero");
                                         }
                                    }};

    var imc = pacienteAtual.getImc();

    var tdImc = pacienteTr.getElementsByClassName('info-imc')[0];
    tdImc.textContent = imc;

}
4 respostas

Até onde funcionou o seu código?

Olhando daqui onde está pacienteTr.getElementsByClassName('info-imc')[0]; deveria ser document.getElementsByClassName('info-imc')[0];

pois este método getElementsByClassName() pertence ao objeto document.

@Thiago Rafael, eu segui o tutorial do vídeo, e no vídeo está assim.

Thiago posta seu código completo junto com HTML para que eu possa copia-los e verificar o erro que esta dando.

solução!

Boa noite, Thiago! Como vai?

Olhando o código, o problema que eu observei a princípio foi na forma que vc tentou percorrer o array TrsPacientes.

Vc fez assim:

var pacienteTr = TrsPacientes['posicaoAtual'];

E deveria ser assim:

var pacienteTr = TrsPacientes[posicaoAtual];

Pois, posicaoAtual é a variável auxiliar do seu laço for.

Além disso, não se usa document no segundo caso, pq document representa todo o seu documento. Ou seja, quando vc faz

var pacienteTr = TrsPacientes['posicaoAtual'];

var tdNome = pacienteTr.getElementsByClassName('info-nome')[0];
var tdPeso = pacienteTr.getElementsByClassName('info-peso')[0];
var tdAltura = pacienteTr.getElementsByClassName('info-altura')[0];

vc está indicando que não quer procurar elementos com as classes 'info-nome', info-peso' e 'info-altura' em todo o documento, mas, apenas, dentro do elemento pacienteTr.

Abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software