quando utilizo
function calculeIMC(peso, altura){ var imc = 0; imc = peso/(altura*altura);
return imc.toFixed(2);
os resultados que já estavam na tabela ficam com zero no IMC
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
quando utilizo
function calculeIMC(peso, altura){ var imc = 0; imc = peso/(altura*altura);
return imc.toFixed(2);
os resultados que já estavam na tabela ficam com zero no IMC
Oi Matheus, blz?
Poderia postar o código completo para poder tentar lhe ajudar?
Aparentemente sua função está correta, onde que está sendo feita a chamado da função?
//calcula-imc.js
var titulo = document.querySelector(".titulo"); titulo.textContent = "Aparecida Nutricionista";
var pacientes = document.querySelectorAll(".paciente");
for (var i = 0; i < 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 tdImc = paciente.querySelector(".info-imc");
var pesoEhValido = true; var alturaEhValida = true;
if (peso <= 0 || peso >= 1000) { console.log("Peso inválido!"); pesoEhValido = false; tdImc.textContent = "Peso inválido"; paciente.classList.add("paciente-invalido"); }
if (altura <= 0 || altura >= 3.00) { console.log("Altura inválida!"); alturaEhValida = false; tdImc.textContent = "Altura inválida"; paciente.classList.add("paciente-invalido"); }
if (pesoEhValido && alturaEhValida) { var imc = calculaImc(peso,altura); imcTd.textContent = imc; } };
function calculaImc(peso, altura){ var imc = 0; imc = peso / (altura * altura); return imc;
//---------------------------------------------------------
//form.js
var botaoAdicionar = document.querySelector("#adicionar-paciente"); botaoAdicionar.addEventListener("click", function(event) { event.preventDefault();
var form = document.querySelector("#form-adiciona");
var paciente = obtemPacienteDoFormulario(form);
var pacienteTr = montaTr(paciente);
var tabela = document.querySelector("#tabela-pacientes");
tabela.appendChild(pacienteTr);
form.reset();
});
function obtemPacienteDoFormulario(form) {
var paciente = { nome: form.nome.value, peso: form.peso.value, altura: form.altura.value, gordura: form.gordura.value, imc: calculaImc(form.peso.value, form.altura.value) }
return paciente; }
function montaTd(dado, classe) { var td = document.createElement("td"); td.classList.add(classe); td.textContent = dado;
return td; }
function montaTr(paciente) { //Cria TR var pacienteTr = document.createElement("tr"); pacienteTr.classList.add("paciente"); //Cria as TD's e a adiciona dentro da TR pacienteTr.appendChild(montaTd(paciente.nome, "info-nome")); pacienteTr.appendChild(montaTd(paciente.peso, "info-peso")); pacienteTr.appendChild(montaTd(paciente.altura, "info-altura")); pacienteTr.appendChild(montaTd(paciente.gordura, "info-gordura")); pacienteTr.appendChild(montaTd(paciente.imc, "info-imc")); // retorna a TR return pacienteTr; }
Então Matheus, creio que o problema possa ser o seguinte. Na sua função você declarou
function calculaImc(peso, altura){
var imc = 0;
imc = peso / (altura * altura);
return imc;
Está faltando fechar as chaves
function calculaImc(peso, altura){
var imc = 0;
imc = peso / (altura * altura);
return imc;
}
Pode testar e ver se dá certo?
Obs:. Uma dica para quando for postar dúvidas é clicar na parte que diz " <> INSERIR CÓDIGO ", assim o seu código fica mais legível pra quem for responder.