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

Cannot read property querySelector

var pacientes = document.querySelectorAll(".paciente");

for(var i = 0; i<=pacientes.length;i++){ var paciente = pacientes[i];

insira seu código aqui

var tdPeso = paciente.querySelector(".info-peso"); var peso = tdPeso.textContent;

var tdAltura = paciente.querySelector(".info-altura");
var altura = tdAltura.textContent;

var tdImc = paciente.querySelector(".info-imc");

var pesoEhValido = true;
var alturaEhValida = true;

if(peso <= 0 || peso >= 100){
    console.log("Peso Inválido");
    pesoEhvalido = false;
    tdImc.textContent = "Peso inválido";

}

if(altura <= 0 || altura >= 10000){
    console.log("Altura Inválida");
    alturaEhvalida = false;
    tdImc.textContent = "Altura Inválida";
}

var imc = peso / (altura * altura);
tdImc.textContent = imc.toFixed(2);

}

O erro está na linha var tdPeso = paciente.querySelector(".info-peso");

2 respostas
solução!

Olá!

Quando o código faz o looping passa por um paciente a mais, que não existe e por isso fica undefined. Para corrigir esse problema segue o código.

São cinco pacientes e o seu contador tem que ir do 0 ao 4(cinco elementos).

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

Fala Alice!

Não se esqueça de marcar a resposta do Henrique como solução caso resolva seu problema!

Abraços!

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