3
respostas

A classe "paciente-invalido" não funciona mais no arquivo JS

Ainda que eu não tenha alterado isso, o comando que pinta (de vermelho) a linha com erro no navegador parou de funcionar. A classe ".paciente-invalido" está contida no CSS, porém ela não está funcionando, mesmo estando declarada no arquivo JS, conforme segue:

let titulo = document.querySelector(".titulo"); titulo.textContent = "Aparecida Nutricionista";

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

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

    var paciente = pacientes[i];

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

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

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

    let pesoValido = validaPeso(peso);
    let alturaValida = validaAltura(altura);

    if(!pesoValido) { 
        console.log("Peso Inválido");
        pesoValido = false;
        tdImc.textContent = "Peso Inválido";
        paciente.classList.add("paciente-invalido");
    }

    if(!alturaValida) {
        console.log("Altura Inválida");
        alturaValida = false;
        tdImc.textContent = "Altura Inválida";
        paciente.classList.add("paciente-invalido");
    }

    if(alturaValida && pesoValido) { 
        let imc = calculaImc(peso,altura);
        tdImc.textContent = imc;
    }

}

function validaPeso(peso) {
    if(peso >= 0 && peso < 1000) {
        return true;
    } else {
        return false;
    }
}

function validaAltura(altura) {
    if(altura >=0 && altura <= 3.00) {
        return true;
    } else {
        return false;
    }
}

function calculaImc(peso, altura) {
    let imc = 0;
    imc = peso / (altura * altura);
    return imc.toFixed(2);
}
3 respostas

Iolanda, a suas função valida peso esta aceitando peso maior que 1000, a pessoa mais pessada da sua tabela é Paulo com 963 quilos, então não tem ninguém que irá ficar com a linha vermelha, abaixo o peso máximo da função e a linha ficará vermelha.

function validaPeso(peso) { if(peso >= 0 && peso < 300) { return true; } else { return false; } }

Então, não é isso, eu coloquei "peso < 1000", ou seja, peso menor que "1000", e o próprio instrutor do curso usa o valor de "1000". E eu faço o teste no HTML com Paulo "-100", que é justamente para dar um erro evidente. Na linha correspondente do navegador consta a mensagem de erro certa ("Peso Inválido"), o programa só não consegue pintar a linha.

Já fiz o teste com seu códio, é apenas o valor <1000, para ficar vermelha do jeito que esta o pesso term quer ser maior que 1000, ou então diminuiu o valor. Faça o teste assim e vai ver que irá funcionar.