Olá Cicero, tudo bem com você?
O resultado do cálculo do IMC não está sendo apresentado na linha do primeiro paciente, devido à ausência do seletor de classes CSS no momento em que a variável tdImc
é atribuída. Assim, não será encontrado a classe CSS e será gerado o erro: Uncaught TypeError: Cannot set properties of null (setting 'textContent').
Peço que no arquivo calcula-imc.js localize a linha onde ocorre a atribuição da variável tdImc
. No momento em que é fornecido o nome da classe CSS para o método querySelector()
adicione um ponto (.
) a frente da string "info-imc"
. Assim estaremos usando o seletor de classes CSS. O código deve ficar como apresentado abaixo.
var tdImc=paciente.querySelector(".info-imc");
Ainda no arquivo calcula-imc.js. Será necessário realizar uma correção na fórmula utilizada para calcular o IMC. Quando está acontecendo a multiplicação da altura, foi utilizado um ponto (.
) para indicar a multiplicação, o correto é utilizarmos um asterisco (*
).
Localize a estrutura condicional que contém o cálculo do IMC (última estrutura condicional do arquivo). Modifique o código deixando-o como apresentado abaixo.
if(pesoEhValido && alturaEhValido){
var imc = peso/(altura * altura);
console.log(imc);
tdImc.textContent=imc;
}
Após as mudanças realizadas, salve o arquivo calcula-imc.js. Abra o arquivo index.html no navegador e verifique o resultado do cálculo do IMC do primeiro paciente.
Código completo com as mudanças aplicadas
var titulo=document.querySelector(".titulo");
titulo.textContent = "Aparecida Nutricionista";
var paciente = document.querySelector("#primeiro-paciente");
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 alturaEhValido=true;
if(peso<0||peso>1000){
console.log("Peso Ivalido");
pesoEhValido = false;
}
if(altura<0||altura>3){
console.log("Altura Inválida");
alturaEhValido=false;
}
if(pesoEhValido && alturaEhValido){
var imc = peso/(altura * altura);
console.log(imc);
tdImc.textContent=imc;
}
Na aula replicando a validação e o cálculo do IMC para todos os pacientes ocorrerá a implementação do calculo para os demais pacientes da tabela.
Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.
Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!