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

Console acusa erro: Cannot read property 'querySelector' of undefined at principal.js:11

O código funciona mas esta acusando esse erro no console, já tentei vê mas não encontrei nada de errado no código.

var selection = document.querySelector(".titulo");

 selection.textContent = "Aparecida nutricionista";


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

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

   var tdpeso = paciente.querySelector(".info-peso");  // o erro é nessa linha
   var peso = tdpeso.textContent;

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

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


   var pesovalido = true;
   var alturavalida = true;

 if(peso <= 0 || peso >= 1000){
    pesovalido = false;
    tdimc.textContent = "peso invalido";
    paciente.classList.add("paciente-invalido");
 }if(altura <= 0 || altura >= 3.00){
    alturavalida = false;
   tdimc.textContent = "altura invalida";
   paciente.classList.add("paciente-invalido");
}   
  if(pesovalido && alturavalida){
    var imc = peso/(altura*altura);
    tdimc.textContent = imc.toFixed(2);  
  } 
}
2 respostas

Boa tarde Jhonatan,

Aparentemente sua variável paciente está undefined , coloque um console.log depois da variável paciente e veja o conteúdo dela, assim:

 var paciente = pacientes[i];

console.log(paciente, "paciente"); //veja o resultado no console

var tdpeso = paciente.querySelector(".info-peso");  // o erro é nessa linha

Provavelmente o erro está ocorrendo pois o querySelectorAll não está pegando os pacientes, verifique se os elementos do HTML estão com a classe paciente.

Se o erro persistir poste o código completo (HTML + JS) aqui ou em um exemplo no codepen

Abraços

solução!

Obrigado mas conseguir resolver.