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

Aviso de erro** 'querySelector' of undefined

Olá a todos estou fazendo a 2° aula de Js, o codigo que fiz está rodando certinho, porem o console fica aparecendo um aviso dizendo :

calculaIMC.js:9 Uncaught TypeError: Cannot read property 'querySelector' of undefined at calculeimc (calculaIMC.js:9) at calculaIMC.js:4 gostaria de saber se tem como remover esse erro? Ou é assim mesmo ?

segue o código para analise.


var pacientes = document.querySelectorAll('.paciente');
for (var i = 0; i <= pacientes.length; i++) {
    calculeimc(pacientes[i]);
}

function calculeimc(paciente) {
    // peso;
    var peso = paciente.querySelector('.info-peso');
    peso = peso.textContent;
    //altura
    var altura = paciente.querySelector('.info-altura');
    altura = altura.textContent;
    //imc 
    var imcView = paciente.querySelector('.info-imc');
    if (peso < 0 || peso >= 1000 || altura > 3 || altura < 0.3) {
        imcView.textContent = ' Dado invalido';
    } else {
        var imc = peso / (altura * 2);
        imcView.textContent = imc.toFixed(2);
    }
}

desde já agradeço =D P.s o html é o mesmo enviado pelo professor =P.

2 respostas
solução!

E aí, Filipe, tudo certo, cara? =)

Eu dei uma olhadinha aqui... Acredito que o erro esteja no seu for... Você está fazendo o seguinte:

for (var i = 0; i <= pacientes.length; i++) { ... }

Lembra que length, te devolverá o valor com o comprimento do array. Mas quando você acessa alguma posição dele, você começa com 0... Assim, acho que você tem que tirar o <= e deixar apenas <... =)

Você pode testar e nos informar se funcionou? =)

Espero ter ajudado! Abraço e bons estudos,

Fábio

Muito obrigado Fábio, o erro era esse mesmo =D muito obrigado de novo ;) .