Luego de terminar el proyecto final, por que ya no continua haciendo las validaciones del ciclo for, ni con los pacientes "viejos", ni con los nuevos ? Hay alguna forma de encapsular el loop en una función y luego llamarlo para hacer sus validaciones en la otra función para que antes de calcular el IMC.
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 pesoEsValido = true;
var alturaEsValida = true;
if((peso < 0 ) || (peso > 1000)) {
console.log("peso incorrecto");
tdIMC.textContent = "Peso no valido";
pesoEsValido = false;
paciente.classList.add("paciente-incorrecto");
}
if((altura < 0 ) || (altura > 4.00)) {
console.log("altura incorrecto");
tdIMC.textContent = "Altura no valida";
alturaEsValida = false;
paciente.classList.add("paciente-incorrecto");
}
if (pesoEsValido && alturaEsValida){
tdIMC.textContent = calcularIMC(peso,altura)
}
}
function calcularIMC(peso,altura){
var imc = peso / (altura * altura);
return imc.toFixed(2);
}