Olá, eu acabei de responder essa pergunta: https://cursos.alura.com.br/course/javascript-programando-na-linguagem-web/task/23604
A opção correta é A como imaginei, mas tem um pequeno erro a ser analisado. Veja o código descrito na resposta:
if(peso <=0 || peso >= 1000) { pesoEhValido = false; tdPeso.textContent = 'peso inválido'; }
if(altura <= 0 || altura >= 3.00) { alturaEhValida = false; tdAltura.textContent = 'altura inválida'; }
if(pesoEhValido && alturaEhValida) { var imc = peso / ( altura * altura); tdImc.textContent = imc; }
O erro está na linha "tdPeso.textContent" e "tdAltura.textContent", esses campos recebem o valor de peso e altura, não pode ser setado a mensagem de erro no próprio campo que recebe o valor de peso e altura.
O Correto seria:
if(peso <=0 || peso >= 1000) { pesoEhValido = false; tdImc.textContent = 'peso inválido'; }
if(altura <= 0 || altura >= 3.00) { alturaEhValida = false; tdImc.textContent = 'altura inválida'; }
if(pesoEhValido && alturaEhValida) { var imc = peso / ( altura * altura); tdImc.textContent = imc; }
Ao trocar esses valores o campo IMC recebe a mensagem de erro.