Ja chequei ate aqui Aula 6, porem nao esta exibindo os valores do IMCs na pagina index, e nao apresenta erro nenhum no console alguem ja passou por isso, vou revisar pela 3 vez o codigo...rs osso..
Ja chequei ate aqui Aula 6, porem nao esta exibindo os valores do IMCs na pagina index, e nao apresenta erro nenhum no console alguem ja passou por isso, vou revisar pela 3 vez o codigo...rs osso..
William,
Por gentileza poste seu código para que possa verificar.
att.
calcula-imc.js
function calculaTodosImcs(){
var trsPacientes = document.getElementsByClassName("Paciente");
percorreArray(trsPacientes, function (pacienteTr){
var tdNome = pacienteTr.getElementsByClassName("info-nome")[0]; // pega tr do nome do paciente atual
var tdPeso = pacienteTr.getElementsByClassName("info-peso")[0]; // pega tr do peso do paciente atual
var tdAltura = pacienteTr.getElementsByClassName("info-altura")[0]; // pega tr do altura do paciente atual
var pacienteAtual = {nome : tdNome.textContent,
peso : tdPeso.textContent,
altura : TdAltura.textContent,
pegaImc : function(){ //FUNCAO ANONIMA QUE REALIZA O CALCULO IMC
if(this.altura != 0){
var imc = this.peso / (this.altura * this.altura);
return imc;
}else{
console.log("Não posso executar uma divisão por 0!");
}
}}; //funcao anonima
var imc = pacienteAtual.pegaImc();
var tdImc = pacienteTr.getElementsByClassName("info-imc")[0];
tdImc.textContent = imc;
console.log(imc); // 25
console.log("testeteste")
})
}
var botao = document.getElementById("calcula-imcs");
//botao.onclick = calculaTodosImcs;
botao.addEventListener("click", calculaTodosImcs);
percorre.js
function percorreArray(trsPacientes, comportamento) {
for(var posicaoAtual = 0; posicaoAtual <= trsPacientes.length - 1; posicaAtual++){
var pacienteTrAtual = trsPacientes[posicaoAtual];
comportamento(pacienteTrAtual);
}
}
imprime-nome.js
var trsPacientes = document.getElementsByClassName("Paciente");
percorreArray(trsPacientes, function (pacienteTr){
var tdNome = pacienteTr.getElementsByClassName("info-nome")[0]; // pega tr do nome do paciente atual
var tdPeso = pacienteTr.getElementsByClassName("info-peso")[0]; // pega tr do peso do paciente atual
var tdAltura = pacienteTr.getElementsByClassName("info-altura")[0]; // pega tr do altura do paciente atual
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 executar uma divisão por 0!");
}
}}; //funcao anonima
console.log(pacienteAtual.nome); // 25
});
adiciona.js
var botao = document.querySelector("#adicionar-paciente");
botao.addEventListener("click", function(event){
event.preventDefault(); //impede comportamento padrao do form
var campoNome = document.querySelector("#campo-nome");
var campoPeso = document.querySelector("#campo-peso");
var campoAltura = document.querySelector("#campo-Altura");
var pacienteNovo = "<tr class='paciente'>"+
"<td class='info-nome'>"+ campoNome.value +"</td>"+
"<td class='info-peso'>"+ campoPeso.value +"</td>"+
"<td class='info-altura'>"+ campoAltura.value +"</td>"+
"<td class='info-imc'></td>"+
"</tr>";
var tabela = document.querySelector("table"); //primeiro elemento
tabela.innerHTML = tabela.innerHTML + pacienteNovo;
campoNome.value = "";
campoPeso.value = "";
campoAltura.value = "";
})
Olá William! Observando seu código percebi que você cometeu alguns pequenos erros de digitação e foi isso que estava fazendo seu código não funcionar.
1 - O nome da tag é "paciente" e não "Paciente".
Altere a seguinte linha de código presente tanto em calcula-imc.js como em imprime-nome.js:
var trsPacientes = document.getElementsByClassName("Paciente");
Para:
var trsPacientes = document.getElementsByClassName("paciente");
2 - Também tanto em calcula-imc.js quanto em imprime-nome.js você escreveu TdAltura ao invés do nome correto da variável que é tdAltura .
Altere a seguinte linha de código:
altura : TdAltura.textContent,
Para:
altura : tdAltura.textContent,
3 - Em seu percorre.js você escreveu posicaAtual++ quando o correto seria posicaoAtual++.
Altere seu código abaixo:
for(var posicaoAtual = 0; posicaoAtual <= trsPacientes.length - 1; posicaAtual++){
Para:
for(var posicaoAtual = 0; posicaoAtual <= trsPacientes.length - 1; posicaoAtual++){
Enfim, após ter feito essa alterações seu código rodou normalmente aqui. Espero ter ajudado! Bons Estudos!
Cara perfeito, eu na verdade fiz isso so pra te testar...kkkk brincadeira! valew pelo help.
kkkkkkk Pelo menos eu passei no teste. kkkkkkk. Por nada William! Bons Estudos!