Olá! Estou com um problema estranho. O código parece (parece) estar idêntico ao do professor mas, quando clico no botão para adicionar uma nova tr
, atr
de cima acaba sendo copiada e criada como sendo a nova. Além disso, estou com o erro [object HTMLInputElement]
na td
de gordura.
Não estou conseguindo localizar o erro. Podem me dar uma luz?
/* PEGANDO EVENTOS COM CLIQUE DE BOTÃO*/
/*Pegando a var botao e aplicando um evento de clicar nele*/
/*Chamando tbm uma função anônima*/
var botaoAdicionar = document.querySelector("#adicionar-paciente");
botaoAdicionar.addEventListener("click", function(evento){
evento.preventDefault();
/*EXTRAI INFORMAÇÕES DO FORMULÁRIO E CRIA VARIÁVEIS*/
var formulario = document.querySelector("#form-adiciona");
var paciente = extraiInformacoesFormulario(formulario);
/*CRIA A TR E A TD DO PACIENTE*/
var pacienteTr = montaTr(paciente);
/*Colocando as td dentro da tr (tabela) via append.child*/
/*Adicionando os pacientes na tabela*/
var tabela = document.querySelector("#tabela-pacientes")
tabela.appendChild(pacienteTr);
});
// introdução a objetos
// função para obter pacientes do formulário
function extraiInformacoesFormulario(formulario){
var paciente = {
nome: formulario.nome.value,
altura: formulario.altura.value,
peso: formulario.peso.value,
gordura:formulario.gordura.value,
imc:calculaImc(formulario.peso.value,formulario.altura.value)
}
return paciente;
}
function montaTr(paciente){
var pacienteTr = document.createElement("tr");
/*CRIANDO TDS E TRS NA TABELA USANDO O FORMULÁRIO + BOTAO*/
var pesoTd = document.createElement("td");
var alturaTd = document.createElement("td");
var gorduraTd = document.createElement("td");
var nomeTd = document.createElement("td");
var imcTd = document.createElement("td");
/*PEGANDO A TD QUE FOI CRIADA COM JAVASCRIPT
E ATRIBUINDO AO TD.TEXTCONTENT DELA O VALOR DAS VARIÁVEIS */
nomeTd.textContent = paciente.nome;
pesoTd.textContent = paciente.peso;
alturaTd.textContent = paciente.altura;
gorduraTd.textContent = paciente.gordura;
imcTd.textContent = paciente.imc;
/*Colocando as td dentro da tr (tabela) via append.child*/
pacienteTr.appendChild(nomeTd);
pacienteTr.appendChild(pesoTd);
pacienteTr.appendChild(alturaTd);
pacienteTr.appendChild(gorduraTd);
pacienteTr.appendChild(imcTd);
return pacienteTr;
}