Como ficaria o código caso no lugar de:
campoPeso.value/(campoAltura.value*campoAltura.value)
usar a fuction montaPaciente no arquivo "calcula-imc.js"?
Segue o código:
//adiciona.js
var botao = document.querySelector("#adicionar-paciente");
botao.addEventListener("click",function(event){
event.preventDefault(); // impede comportamento padrão
//adicionando os campos do fromulario
var campoNome = document.querySelector("#campo-nome");
var campoPeso = document.querySelector("#campo-peso");
var campoAltura = document.querySelector("#campo-altura");
if (campoNome.value != "" || campoPeso.value != "" || campoAltura.value != ""){
var trDoNovoPaciente = document.getElementsByTagName("paciente")[0];
var pacienteNovo = "<tr class='paciente'>"+
"<td class='info-nome'>" +campoNome.value+ "</td>"+ //recebe o valor do campo do formulario atraves do campoNome.value
"<td class='info-peso'>"+campoPeso.value+"</td>"+
"<td class='info-altura'>"+campoAltura.value+"</td>"+
"<td class='info-imc'>"+campoPeso.value/(campoAltura.value*campoAltura.value)+"</td>"+
"</tr>";
//adicionar o paciente novo a tabela html
var todosPacientes = document.querySelector("table"); //seleciona sempre o primeiro elemento
todosPacientes.innerHTML = todosPacientes.innerHTML + pacienteNovo;
//limpar o formulario apos adicionar
campoNome.value = "";
campoPeso.value = "";
campoAltura.value = "";
}else{
alert("Por favor preencha com seus dados: Nome, Peso e Altura!");
console.log("Por favor preencha com seus dados: Nome, Peso e Altura!");
}
});
//calcula-imc.js
var botao = document.getElementById("calcula-imcs");
botao.addEventListener("click", function () {
//tr dos pacientes
var trsPacientes = document.getElementsByClassName("paciente");
//usa percorre.js passando trsPacientes e função imprimeEModificatdDeImc
percorreArray(trsPacientes, imprimeEModificaTdDeImc);
function imprimeEModificaTdDeImc(pacienteTr){
var pacienteAtual = montaPaciente(pacienteTr);
var imc = pacienteAtual.pegaImc();
var tdImc = pacienteTr.getElementsByClassName("info-imc")[0];
tdImc.textContent = imc;
console.log(imc);
}
function montaPaciente(pacienteTr){
var tdNome = pacienteTr.getElementsByClassName("info-nome")[0];
var tdPeso = pacienteTr.getElementsByClassName("info-peso")[0];
var tdAltura = pacienteTr.getElementsByClassName("info-altura")[0];
var paciente = {
nome : tdNome.textContent,
peso : tdPeso.textContent,
altura : tdAltura.textContent,
pegaImc: function() {
if(this.altura != 0){
var imc = this.peso / (this.altura * this.altura);
return imc;
} else{
console("Não posso dividir por zero!");
}
}
}
return paciente;
};
});