2
respuestas

pacienteTr.appenChild is not a function at HTMLButtonElement.<anonymous>

El error que me tira en consola a pesar de creo yo tener el código como el instructor. El viscul Studio me dice que "no se ha encontrado el nombre pacienteTr"

principal.js

//Tomo todo el valor del boton
var botonAdicionar = document.querySelector("#adicionar-paciente");

//Funcion al hacer clic en botón Enviar
botonAdicionar.addEventListener("click",function(event){
    event.preventDefault();

    //Tomo el valor de todo el formulario
    var form = document.querySelector("#form-adicionar");

    //Obtenemos Valores de cada input
    var nombre = form.nombre.value;
    var peso = form.peso.value;
    var altura = form.altura.value;
    var gordura = form.gordura.value;

    //Tomo valor tabla pacientes
    var tabla = document.querySelector("#tabla-pacientes");

    //Creamos Etiquetas <td></td>
    pacienteTr = document.createElement("tr");
    nombreTd = document.createElement("td");
    pesoTd = document.createElement("td");
    alturaTd = document.createElement("td");
    gorduraTd = document.createElement("td");
    imcTd = document.createElement("td");

    //Asigno valor de variables a etiquetas 
    nombreTd.textContent = nombre;
    pesoTd.textContent = peso;
    alturaTd.textContent = altura;
    gorduraTd.textContent = gordura;

    //Envío datos JS al HTML
    pacienteTr.appenChild(nombreTd);
    pacienteTr.appenChild(pesoTd);
    pacienteTr.appenChild(alturaTd);
    pacienteTr.appenChild(gorduraTd);

    //Reflejo datos en tabla
    tabla.appendChild(pacienteTr);

});

//Tomo el valor de tabla pacientes
var pacientes = document.querySelectorAll(".paciente");

//Recorro todos los registros de la tabla pacientes
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");

    pesoEsValido = true;
    alturaEsValida = true;

    if(peso < 0 || peso > 1000){
        pesoEsValido = false;
        tdIMC.textContent = "Peso Incorrecto";
        paciente.classList.add("paciente-incorrecto");
    }

    if(altura < 0 || altura > 3){
        pesoEsValido = false;
        tdIMC.textContent = "Altura Incorrecta";
        paciente.classList.add("paciente-incorrecto");
    }

    if(pesoEsValido && alturaEsValida){
        var imc = peso / (altura * altura);
        tdIMC.textContent = imc.toFixed(2);
    }
}




2 respuestas

Ya encontre el errorazooooooooooooooooooooo!

No lo declaro como variables. Y el appenchild esta mal escrito.

Código mal

pacienteTr = document.createElement("tr");
    nombreTd = document.createElement("td");
    pesoTd = document.createElement("td");
    alturaTd = document.createElement("td");
    gorduraTd = document.createElement("td");
    imcTd = document.createElement("td");

    ...

     pacienteTr.appenChild(nombreTd);
    pacienteTr.appenChild(pesoTd);
    pacienteTr.appenChild(alturaTd);
    pacienteTr.appenChild(gorduraTd);

Código Corregido

var    pacienteTr = document.createElement("tr");
var    nombreTd = document.createElement("td");
var    pesoTd = document.createElement("td");
var   alturaTd = document.createElement("td");
var   gorduraTd = document.createElement("td");
var   imcTd = document.createElement("td");

...

 pacienteTr.appendChild(nombreTd);
    pacienteTr.appendChild(pesoTd);
    pacienteTr.appendChild(alturaTd);
    pacienteTr.appendChild(gorduraTd);

Hola Gastón, gracias por tu participación en el foro!

Que bueno que encontraste la solución.

Un saludo!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios