Tenho dois problemas. Quando carrego a página, ocorre um erro "principal.js:11 Uncaught TypeError: Cannot read property 'querySelector' of undefined at principal.js:11". A linha é: var tdPeso = paciente.querySelector('.info-peso'). Mas tudo funciona bem, inclusive calculando o imc conforme os dados. A chamada do script está logo acima da tag .
O segundo problema é que, apesar de não indicar mais nenhum erro, não imprime a mensagem na console quando clico no botão, e o formulário é limpo. Aparentemente não executa o método event.preventDefault(). Segue abaixo o código, obrigado pela ajuda!
var titulo = document.querySelector('.titulo'); titulo.textContent = 'Aparecida Nutricionaista';
var pacientes = document.querySelectorAll ('.paciente');
for(var i = 0; pacientes.length; i++){
var paciente = pacientes[i];
var tdPeso = paciente.querySelector('.info-peso');
var peso = tdPeso.textContent;
var tdAltura = paciente.querySelector('.info-altura');
var altura = tdAltura.textContent;
var imc = peso / altura ** 2;
tdImc = paciente.querySelector ('.info-imc');
var pesoEhValido = true;
var alturaEhValida = true;
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 (alturaEhValida && pesoEhValido){
var imc = peso / (altura * altura);
tdImc.textContent = imc.toFixed(2);
} else {
tdImc.textContent = 'Dados inválidos';
paciente.classList.add('paciente-invalido');
}
}
var botaoAdicionar = document.querySelector("#adicionar-paciente");
botaoAdicionar.addEventListener("click", function(event) { event.preventDefault();
console.log("Oi eu sou o botao e fui clicado");
});