Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Chamada de função js no html

Estou com problemas ao chamar a função js via html. Erro que aparece é este:Uncaught ReferenceError: pacienteTr is not defined calcula-imc.js:24montaPaciente calcula-imc.js:24calculaTodosImcs

<button id="calcula-imcs" class="botao " >Calcular Imcs</button>
//
function calculaTodosImcs(){
    var pacientes = document.getElementsByClassName("paciente");

    for(var posicaoAtual = 0; posicaoAtual <= pacientes.length-1; posicaoAtual++){

    var pacienteTr = pacientes[posicaoAtual]; 
    var trImc = pacienteTr.getElementsByClassName("info-imc")[0];
    var paciente = montaPaciente(pacienteTr); 
    var imc = paciente.pegaImc();

    trImc.textContent = imc;

    console.log(imc);

    }
}
var botao = document.getElementById("calcula-imcs");
botao.addEventListener("click", calculaTodosImcs);

function montaPaciente(){

var nome = pacienteTr.getElementsByClassName("info-nome")[0].textContent; 
var peso = pacienteTr.getElementsByClassName("info-peso")[0].textContent; 
var altura = pacienteTr.getElementsByClassName("info-altura")[0].textContent;
var paciente= {
    nome: nome, 
    peso: peso, 
    altura: altura, 
    pegaImc: function(){
    var imc = peso / (altura * altura); 
    return imc; } } 
    return paciente;
}
2 respostas
solução!

Na função calculaTodosImcs você cria a variável pacienteTr e envia ele como parâmetro na função montarPaciente. O único erro é que você não está recebendo este parâmetro na função montaPaciente, aí ele está perdendo referência. Coloca assim na sua função que deve funcionar:

function montaPaciente(pacienteTr){
}

verdade, esqueci de por o argumento na function. vlw