Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problema retorna NaN

Boa Tarde, estou seguindo este curso com algumas diferenças, para eu conseguir treinar melhor, criei algumas partes do zero sem usar o código do inicio do projeto, tinha conseguido executa-lo normalmente, então fechei o computador e fui dormir, mas no dia seguinte quando tentei executa-lo novamente, a variavel imc retorna o valor: NaN, conversei com alguns amigos mas nenhum conseguiu me ajudar, sabe qual seria o problema?

Código HTML

<head>

    <title>RVB</title>
     <script>
        console.log(document);
    </script>
</head>
<body>
    <header>
        <div>
            <h1 class="titulo">Aparecida Nutrição</h1>
        </div>
    </header>

    <table>
    <tr>
    <td>NOME</td>
    <td>PESO</td>
    <td>ALTURA</td>
    <td>IMC</td>
    </tr>


    <tr class="Paciente" id="PrimeiroPaciente">
    <td class="nome">Paulo</td>
    <td class="peso">50.0</td>
    <td class="altura">2.4</td>
    <td class="imc">IMC</td>
    </tr>

    <tr class="Paciente" id="SegundoPaciente">
    <td class="nome2">Paula</td>
    <td class="peso2">100</td>
    <td class="altura2">1.5</td>
    <td class="imc2">IMC</td>
    </tr>

    </table>

    <script src="C:/users/arthu/desktop/script.js">    </script>

</body>

Código JavaScript

var titulo = document.querySelector(".titulo");

    var paciente = document.querySelector("#PrimeiroPaciente");
    var peso = paciente.querySelector(".peso");
    var altura = paciente.querySelector(".altura");
    var tdimc = paciente.querySelector(".imc");



    var imc = peso / (altura * altura);


    if(peso <= 0 || peso >= 500){
        alert("PESO INVALIDO, VERIFICAR");
        tdimc.textContent = "PESO INVALIDO";
    } else if (altura <= 0 || altura >= 2.5) {
        alert("ALTURA INVALIDA, VERIFICAR");
        tdimc.textContent = "ALTURA INVALIDA";    
    }else{
        tdimc.textContent = imc;

    };

    console.log(imc);


    /*teste logico*/
    var nan = 50.00 / (1.0 * 1.0);

    console.log(nan);
1 resposta
solução!

Arthur, bom dia!

Isso está ocorrendo pois ao fazer o document.querySelector('seusElementos), você está selecionando o que nós chamamos de nó, ou seja, o próprio elemento e não o texto desse elemento.

Ao fazer o calculo do IMC você está fazendo a conta com os elementos e não com seus valores.

Basta alterar para:

 var imc = peso.textContent / (altura.textContent * altura.textContent);

Assim você irá pegar o valor, espero ter ajudado e bons estudos!