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

Algo dando errado!

Ao ponto que somos apresentados à funcionalidade paciente.classList.add("paciente-invalido" e troco pela utilização passada anterior a esta (paciente.style.backgroundColor = "lightcoral";) o site volta a "cara" inicial, com o titulo padrão "Aparecida Nutrição" e sem a consideração dos dados de contas de imc que fizemos e ainda temos no codigo do JS.

Só estou mudando isso no código. E obviamente incluindo a alteração de background-color no css nessa nova classe que criamos, fora isso tudo esta funcionando, mas quando incluo a nova lógica o site simplesmente desconsidera todo resto por algum motivo.

Segue respectivamente as partes convenientes a que me refiro:

HTML:

<tbody id="tabela-pacientes">
                        <tr class="paciente" >
                            <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" >
                            <td class="info-nome">João</td>
                            <td class="info-peso">80</td>
                            <td class="info-altura">1.72</td>
                            <td class="info-gordura">40</td>
                            <td class="info-imc">0</td>
                        </tr>

                        <tr class="paciente" >
                            <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">
                            <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" >
                            <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>

CSS:

.paciente-invalido{
    background-color: lightcoral;
}

JS:

var titulo = document.querySelector(".titulo");
titulo.textContent = "Novinha Nutricionista";


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


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

    var paciente = pacientes[i];

    var tdPeso = paciente.querySelector(".info-peso");
    var peso = tdPeso.textContent;

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

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


    var alturaEhValida = true;
    var pesoEhValido = true;

    if(peso <= 0 || peso >= 1000){
        console.log("Peso inválido");
        pesoEhValido = false;
        tdImc.textContent = "Peso inválido!";
        paciente.classList.add("paciente-invalido");
    }

    if(altura <= 0 || altura >= 3.00){
        console.log("Altura inválida");
        alturaEhValida = false;
        tdImc.textContent = "Altura inválida!";
         paciente.classList.add("paciente-invalido");

    if (alturaEhValida && pesoEhValido) {

        var imc = peso / (altura * altura);
        tdImc.textContent = imc.toFixed(2);
    }
}

Alguém pode me ajudar a identificar porque acontece isso?
1 resposta
solução!

Já encontrei. Faltava apenas fechar o if utilizado para checar a altura! hehe