Olá!
Eu estou tendo um problema com o meu Java Script, na parte de "enxugar" o código da Aparecida Nutrição, fiz todas as coisas pedidas pelo professor, mas o meu console sempre dizia o mesmo erro:
form.js:31 Uncaught TypeError: Cannot read property 'nome' of undefined
at montaTr (form.js:31)
at HTMLButtonElement.<anonymous> (form.js:9)
Depois de reler o erro e o meu código, pela minha interpretação do erro o meu navegador não consegue ler a minha variável "paciente" mesmo ela sendo bem explicada e usada várias vezes no meu código, alguém pode me explicar o meu erro? Esse é o meu 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);
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)
}
}
function montaTr(paciente){
var pacienteTr = document.createElement("tr");
pacienteTr.classList.add("paciente");
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"));
return pacienteTr;
}
})
function montaTd(dado, classe) {
var td = document.createElement("td");
td.textContent = dado;
td.classList.add(classe);
return montaTd;
}