1
resposta

Dois problemas

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");

});

1 resposta

Oi, Sergio, tudo bem?

na linha onde estar o for no, onde está a condição, ficou faltando você demonstrar até onde o loop vai ser executado:

for(var i = 0; i < pacientes.length; i++)

Agora, o seu console log será mostrado no console do navegador.

Testa e me fala se deu certo :}