2
respostas

o imc voltou a dar NaN

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 tdGordura = paciente.querySelector(".info-gordura");
var gordura = tdGordura.textContent;

var tdImc = paciente.querySelector(".info-imc");
var imc = tdImc.textContent;

var pesoEValido = validaPeso (peso);
var alturaEValida = validaAltura (altura);

if(!pesoEValido){
    console.log("peso invalido");
    pesoEValido = false;
    tdImc.textContent = "Peso invalido!"
    paciente.classList.add("paciente-invalido");
}
if(!alturaEValida){
    console.log("Altura invalida");
    alturaEValida = false;
    tdImc.textContent = "Altura invalida!"
    paciente.classList.add("paciente-invalido");
}


if(alturaEValida && pesoEValido){
var imc = calculaImc(peso,altura);
tdImc.textContent = imc;
}

}

function validaPeso(peso) {
    if (peso >= 0 && peso < 500){
        return true;
    }else{
        return false;
    }
}

function validaAltura(altura) {
    if (altura >= 0 && altura < 3.00){
        return true;
    }else{
        return false;
    }
}

function calculaImc(peso, altura){
    var imc= 0;
    imc = peso / (altura * altura);
    return imc.toFixed(2);
}
2 respostas

Boa tarde Vladmir, tudo bem? Cara, o NaN é um valor especial que significa Not-A-Number (não é um número). Esse erro se deve ao fato de o .textContent pegar o texto e não o valor numérico do campo selecionado.

Existem alguns métodos que podem ser usados para transformar o texto em número, como parseInt(), parseFloat() e até o Number().

Tente fazer a seguinte alteração, pra ver se vai dar certo:

var altura = Number(tdAltura.textContent);

Faça isso em todos os momentos que você utilizou o textContent pra pegar um número.

Bons estudos!

oi amigo eu fiz isso, porém infelizmente não mudou nada, o nan ainda aparece no lugar do imc