Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

Por qué mi código solo imprime el último valor? *Calcular el IMC*

Buenas tardes, ya revisé mi código y no veo la razón detrás del porque solome imprime el último valor en la tabla. Usé console.log y el imc de los 5 pacientes se está calculando, me podrían decir porque pasa esto? Adjunto captura de pantalla y mi código.


var titulo = document.querySelector(".titulo"); titulo.textContent = "Buena Vida Nutrición";

var pacientes = document.querySelectorAll(".paciente");

for(var i = 0; i < pacientes.length; i++){ var paciente = pacientes[i];

var tdPeso = paciente.querySelector(".info-peso");
var tdAltura = paciente.querySelector(".info-altura");
var tdImc = document.querySelector(".info-imc");

var altura = tdAltura.textContent;
var peso = tdPeso.textContent;





var imc = peso / (altura * altura);


tdImc.textContent = imc.toFixed(2);
console.log(tdImc.textContent);

}


Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

4 respuestas

Hola Carlos, for(var i = 0; i < pacientes.length; i++){ var paciente = pacientes[i]; en esta parte del codigo le falta la llave que cierra. Tambien lo que veo es que el dato del imc solo lo estas impriemiendo en la consola y no en el navegador, en tu código te falta que se muestre en la pagina.

Hola, gracias por responder. Según yo: tdImc.textContent = imc.toFixed(2); esta es la parte del código que imprime el contenido en el navegador. No estoy seguro de que otra parte me faltaría para que se imprima en el navegador. LA llave que cierra el for loop está presente solo que por alguna razon la página la marca fuera del código al quererla copiar,

solución!

Hola Carlos, el código imprime solo un IMC porque la variable tdImc está seleccionando a un solo td de la tabla con la instrucción document.querySelector(".info-imc") . Debes utilizar la variable paciente que contiene todos los td de la tabla. Un saludo

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Muchas gracias.