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

Uncaught TypeError: Cannot read properties of null (reading 'textContent') at principal.js:8

O CÓDIGO SÓ CALCULA O IMC DO PRIMEIRO PACIENTE

HTML 
<!DOCTYPE html>
<html lang="pt-br">

<head>
    <meta charset="UTF-8">
    <title>Aparecida Nutrição</title>
    <link rel="icon" href="favicon.ico" type="image/x-icon">
    <link rel="stylesheet" type="text/css" href="css/reset.css">
    <link rel="stylesheet" type="text/css" href="css/index.css">

</head>

<body>


    <header>
        <div class="container">
            <h1 class="titulo">Aparecida Nutrição</h1>
        </div>
    </header>
    <main>
        <section class="container">
            <h2>Meus pacientes</h2>
            <table>
                <thead>
                    <tr>
                        <th>Nome</th>
                        <th>Peso(kg)</th>
                        <th>Altura(m)</th>
                        <th>Gordura Corporal(%)</th>
                        <th>IMC</th>
                    </tr>
                </thead>
                <tbody id="tabela-pacientes">
                    <tr class="paciente" id="primeiro">
                        <td class="info-nome">Paulo</td>
                        <td class="info-peso">100</td>
                        <td class="info-altura">2.00</td>
                        <td class="info-gordura">10</td>
                        <td class="info-imc">0</td>
                    </tr>

                    <tr class="paciente" id="segundo">
                        <td class="info-nome">João</td>
                        <td class="info-peso2">80</td>
                        <td class="info-altura2">1.72</td>
                        <td class="info-gordura2">40</td>
                        <td class="info-imc2">0</td>
                    </tr>

                    <tr class="paciente" id="terceiro">
                        <td class="info-nome">Erica</td>
                        <td class="info-peso">54</td>
                        <td class="info-altura">1.64</td>
                        <td class="info-gordura">14</td>
                        <td class="info-imc">0</td>
                    </tr>

                    <tr class="paciente" id="quarto">
                        <td class="info-nome">Douglas</td>
                        <td class="info-peso">85</td>
                        <td class="info-altura">1.73</td>
                        <td class="info-gordura">24</td>
                        <td class="info-imc">0</td>
                    </tr>
                    <tr class="paciente" id="quinto">
                        <td class="info-nome">Tatiana</td>
                        <td class="info-peso">46</td>
                        <td class="info-altura">1.55</td>
                        <td class="info-gordura">19</td>
                        <td class="info-imc">0</td>
                    </tr>
                </tbody>
            </table>

        </section>
    </main>

    <script src="principal.js">
    </script>
</body>

</html>
JAVASCRIPT:

var pacientes = document.querySelectorAll(".paciente");
var paciente = document.querySelector(".paciente");

for (var i = 0; i < pacientes.length; i++) {

    var paciente = pacientes[i];
    var peso = paciente.querySelector(".info-peso");
    var peso1 = peso.textContent;

    var altura = paciente.querySelector(".info-altura");
    var altura1 = altura.textContent;

    var imc = paciente.querySelector(".info-imc");
    var imc1 = imc.textContent;

    var alturaEhValida = false;
    var pesoEhValido = false;

    if (altura1 < 0 || altura1 > 3) {
        altura1 = "altura invalida";
    } else {
        alturaEhValida = true;
    }
    if (peso1 < 0 || peso1 > 1000) {
        peso1 = "peso inválido"
    } else {
        pesoEhValido = true;
    }
    if (pesoEhValido && alturaEhValida) {
        var imc1 = peso1 / (altura1 * altura1);
        imc.textContent = imc1
    } else {
        imc.textContent = "Altura ou Peso Inválidos!!"
    }
## }
1 resposta
solução!

O erro está no seu html. No segundo paciente, você mudou os nomes das classes, colocou info-peso2, info-altura2 e etc, e no javascript, você está chamando o querySelector apenas de info-peso É só renomear as classes do segundo paciente para ficar igual as demais que vai dar certo. Valeu.