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

Aula 03, Conhecendo o DOM

Não consigo fazer funcionar...

'''

var tdpeso = document.getElementById("peso-2"); var tdaltura = document.getElementById("altura-2");

var peso = tdpeso.textContent; var altura = tdaltura.textContent;

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

console.log(imc); }else{ console.log("Impossível executar pois altura é igual a zero"); } '''

10 respostas

Seu código está funcionando perfeitamente, no meu caso peguei o fonte original do projeto e nele contém o elemento "td" com o id="peso-2" e da altura o mesmo, verifique se esses IDs existem na sua página.

Realmente, não encontrei nenhum erro... porém o meu navegador diz que o erros está aqui:

var peso = tdpeso.textContent;

var altura = tdaltura.textContent;

Qual a mensagem de erro que aparece no navegador?

calcula-imc.js:10

Uncaught TypeError: Cannot read property 'textContent' of null

Então é isso mesmo, na sua página "index.html" não há elementos com os ids que está procurando: id="peso-2" e id="altura-2"

<tr class="paciente">
     <td class="info-nome">Paulo</td>
     <td class="info-peso" id="peso-2">100</td>
     <td class="info-altura" id="altura-2">2.00</td>
     <td class="info-imc" id="imc-2"></td>
</tr>

Isso é o que me frusta... pela lógica você tem toda razão... mas tem o Id, tentei até trocar os nomes... ver se havia escrito errado...

<tr class="paciente">
                        <td class="info-nome">Paulo</td>
                        <td class="info-peso" id="peso-2">100</td>
                        <td class="info-altura" id="altura-2">2.00</td>
                        <td class="info-imc" id="imc-2"></td>
                    </tr>
solução!

Werner,

Para ir depurando o código, chame o console.log(tdPeso) e console.log(tdAltura) para saber o que está retornando. Isso irá ajudar a saber qual o erro, pois realmente, os códigos estão ok.

Faz isso e verifique o que ele retorna.

Abs.,

Werner,

Tenta colocar:

var tdpeso = document.getElementById("peso-2").value

O meu também esta dando esse erro, segui a dica do Werner e esta dando que tdPeso e tdAltura é igual a null. Isso fez com que a dica do João também não desse certo. Agora o porque de ser null que eu não sei kk

Por causa da renderização do DOM. Na hora que o navegador carrega seu script, o modelo da página não foi carregado. Coloca a importação do seu js antes do fechamento da tag "body" porque ai você garante que terá valores ligados a esses Id's quando o navegador renderizar o DOM da pagina