1
resposta

Meu código não calcula o imc

Olá...

Meu código não calcula o imc, erro na linha 15, (tdImc.textContent = imc;) já conferi pelo código anteriores e está correto. O que devo fazer?

Uncaught TypeError: Cannot set properties of null (setting 'textContent') at principal.js:15

Segue me código, JS...

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

titulo.textContent = "Aparecida Nutricionista";

var paciente = document.querySelector("#primeiro-paciente");

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

var peso = tdPeso.textContent; var altura = tdAltura.textContent;

var imc = peso / (altura*altura); var tdImc = paciente.querySelector(".info.imc"); tdImc.textContent = imc;

var pesoEhValido = true; var alturaEhValida = true;

if(peso <= 0 || peso >= 600){ console.log("Peso inválido!"); tdPeso.textContent = "Peso Inválido!"; pesoEhValido = false; }

if(altura <= 0 || altura >= 2.90){ console.log("Altura inválida!"); tdAltura.textContent = "Altura Inválida!" alturaEhValida = false; }

if(pesoEhValido && alturaEhValida){ var imc = peso / (altura * altura); tdImc.textContent = imc;} else{

}

Código HTML ...

Paulo1002.00100
1 resposta

Olá, Selver, tudo bem?

Vamos analisar o erro do console:

Uncaught TypeError: Cannot set properties of null (setting 'textContent') at principal.js:15

Ele diz que não é possível alterar a propriedade textContent de null na linha 15, que é essa:

tdImc.textContent = imc;

Isso quer dizer que na verdade a variável tdImc está como null. Isso acontece quando ela não foi selecionada corretamente pelo querySelector. A linha que você tenta fazer isso é essa:

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

Perceba que o seu seletor é ".info.imc", mas na verdade deveria ser ".info-imc", com hífen. Então basta corrigir isso que deverá funcionar normalmente.

Espero ter ajudado! Abraços e bons estudos :)