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

Codigo esta igual o do professor, porem nao mostra o IMC na tabela. O que esta errado?

var tdPeso = document.getElementById("peso-2");
var tdAltura = document.getElementById("altura-2");

var paciente = { peso : tdPeso.textContent, altura : tdAltura.textContent};

if(paciente.altura != 0){
    var imc = paciente.peso / (paciente.altura * paciente.altura);

    var tdImc = document.getElementById("imc-2");
    tdImc.textContext = imc;

    console.log(imc);
} else{
    console.log("Altura nao pode ser 0")
}
4 respostas

Os elementos que possuem os id's peso-2 e altura-2 são inputs ondo o usuário digita um valor? Ou você verificou se a altura está vindo com o valor 0?

Pelo seu exemplo, no console do navegador tem que aparecer alguma coisa, ou aparece "Altura nao pode ser 0", ou o valor do IMC. Deixe o console aberto e recarregue a página.

A célula da tabela somente vai ser preenchida se a altura for maior que zero.

Possíveis erros:

  • Altura não é maior que zero
  • O seu HTML não tem elementos com o id "peso-2" ou "altura-2"
  • Os elementos citados acima existem, mas você não tem um elemento com id "imc-2" (por isso não imprime na tabela)
  • Todos os elementos existem com os "ids" corretos, mas o peso está vazio.
  • Os elementos existem, com valores, mas ocorre um erro ao fazer a conta.

Utilize o console.log para imprimir os valores antes de executar o IF, isso vai ajudar a identificar onde está o problema.

solução!

Pessoal nao deu certo. A altura eh maior que zero. Todas "ids" estao no HTML. Nao entendi a diferenca do que foi passado na tela e o que digitei. Porem na aula seguinte copiei o codigo passado e deu certo.

var peso = document.getElementById("peso-2").textContent; // pega o peso do paciente
var altura = document.getElementById("altura-2").textContent; // pega a altura do paciente

if(altura != 0){
    var imc = peso / (altura * altura);

    var tdDoImc = document.getElementById("imc-2"); // pega o td do imc do paciente 1
    tdDoImc.textContent = imc; //Altera o conteúdo do td para o valor da variável imc

    console.log(imc) // 25
}else{
    console("Não posso executar uma divisão por 0!");
}

Olá, no código que você havia feito, em:

tdDoImc.textContent = imc;

você digitou:

tdDoImc.textCoxtent = imc;

textConteXt (com x), é diferente de textContent.