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

Antes só calculava o imc do primeiro paciente,agora não calcula de nenhum

var pacientes=document.querySelectorAll(".paciente"); console.log(pacientes); for( var i=0;i<pacientes.length;i++){ console.log(pacientes); }

 var paciente=pacientes[i]; 
 //hashtag é pra id ,ponto é pra class
 var inpeso1=paciente.querySelector(".info-peso");
 var peso=inpeso1.textContent;
var altura1=paciente.querySelector(".info-altura");
 var altura=altura1.textContent;
 var ttimc=paciente.querySelector(".info-imc");
 var alturavalida=true;
 var pesovalid=true;
 if(pesovalid<=0 || pesovalid>=1000){
     console.log("peso invalido");
     pesovalid=false;
     ttimc.textContent=("peso inválido");

 }
 if(altura==0 || altura>=3.00){
     console.log("altura inválida");
     alturavalida=false;
     ttimc.textContent=("imc invalido");
     paciente.style.color="red";

 }
 if (alturavalida && pesovalid){
     //calcula o imc
     var imc=peso/(altura*altura);
     ttimc.textContent=imc.toFixed(2);
 }
1 resposta
solução!

Olá, Ana, tudo bem?

O problema é que dentro do bloco for deveria estar quase todo o código, mas está apenas assim:

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

O restante do código ficou fora do for. Por conta disso, quando o comando var paciente = pacientes[i]; é executado, o código não reconhece a variável i, e a variável paciente fica com valor undefined.

Para corrigir, basta colocar o restante do código antes da chave de fechamento } do for, assim:

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

    var paciente = pacientes[i];
    //hashtag é pra id ,ponto é pra class
    var inpeso1 = paciente.querySelector(".info-peso");
    var peso = inpeso1.textContent;
    var altura1 = paciente.querySelector(".info-altura");
    var altura = altura1.textContent;
    var ttimc = paciente.querySelector(".info-imc");
    var alturavalida = true;
    var pesovalid = true;
    if (pesovalid <= 0 || pesovalid >= 1000) {
        console.log("peso invalido");
        pesovalid = false;
        ttimc.textContent = ("peso inválido");

    }
    if (altura == 0 || altura >= 3.00) {
        console.log("altura inválida");
        alturavalida = false;
        ttimc.textContent = ("imc invalido");
        paciente.style.color = "red";

    }
    if (alturavalida && pesovalid) {
        //calcula o imc
        var imc = peso / (altura * altura);
        ttimc.textContent = imc.toFixed(2);
    }
}

E agora só uma dica: quando você for escrever código aqui no fórum, você deve deixá-lo dentro de um bloco de código, senão ele poderá não ficar bem formatado. O bloco de código começa com três crases seguidas e termina com mais três crases seguidas, assim:

Print de bloco de código no campo de texto do fórum, começando com três aspas seguidas e terminando com mais três aspas seguidas em baixo.

Por exemplo, um código HTML:

Exemplo de código HTML dentro do bloco de código, com as tags meta, script e código javascript dentro da tag script. E junto das primeiras três crases, foi digitado "HTML". O código é realçado com algumas cores, de acordo com a linguagem especificada.

Note que você pode escrever o nome da linguagem junto com as três primeiras crases para realçar o código!

Você também pode clicar no ícone </> na barra de ícones para gerar um bloco de código.

Se você tiver qualquer dúvida estaremos aqui para te auxiliar! Bons estudos! :)

Espero ter ajudado! Se tiver mais dúvidas ou dificuldades, ficaremos felizes em te responder. Abraços e bons estudos! :)

Caso esta resposta tenha resolvido sua dúvida, por favor, marque como solucionada ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software