Olá, pessoal! Estou no capítulo 5, na parte cujo título é "Código Repetido", e os arquivos .js estão da seguinte forma:
// percorre.js
function percorreArray(trsPacientes, comportamento) {
for (var posicaoAtual=0; posicaoAtual<=trsPacientes.length-1; posicaoAtual++) {
var pacienteTrAtual = trsPacientes[posicaoAtual];
comportamento(pacienteTrAtual);
}
}
//imprime-nome.js
var trsPacientes = document.getElementsByClassName("paciente");
percorreArray(trsPacientes, imprimeNome);
function imprimeNome(pacienteTr) {
var tdNome = pacienteTr.getElementsByClassName("info-nome")[0];
var tdPeso = pacienteTr.getElementsByClassName("info-peso")[0];
var tdAltura = pacienteTr.getElementsByClassName("info-altura")[0];
var pacienteAtual = {
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!");
}
}
};
console.log(pacienteAtual.nome);
}
//calcula-imc.js
var trsPacientes = document.getElementsByClassName("paciente");
percorreArray(trsPacientes, imprimeEModificaTdDeImc);
function imprimeEModificaTdDeImc(pacienteTr) {
var tdNome = pacienteTr.getElementsByClassName("info-nome")[0];
var tdPeso = pacienteTr.getElementsByClassName("info-peso")[0];
var tdAltura = pacienteTr.getElementsByClassName("info-altura")[0];
var pacienteAtual = {
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.log ("não é possível realizar divisão por 0");
}
}
};
var imc = pacienteAtual.pegaImc();
var tdImc = pacienteTr.getElementsByClassName("info-imc")[0];
tdImc.textContent = imc;
console.log(imc);
}
Antes ddessas alterações, quando ainda não havia o percorre.js, a tabela era atualizada com o valor do imc; no entanto, agora esse valor não mais aparece. Já li e reli os códigos várias vezes, corrigi alguns probleminhas referentes a erros de nomes de algumas variáveis, e nada. O que pode estar errado? Obs.: coloquei as chamadas aos scripts no index.html:
//index.html
<script src="percorre.js"</script>
<script src="calcula-imc.js"></script>
<script src="imprime-nome.js"> </script>