Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

JavaScript/ Error / Console

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeMinha duvida é a seguinte, porque subistituimos o "document.querySelector('#')" por "paciente.querySelector('#')" ele aparece como não definido isso é permitido ou é algo mais para fim de estudo ?

4 respostas

Oi Thiago, tudo certo?

Na verdade esse erro não deveria estar acontecendo, deve ter algo de errado no seu código Javascript.

Você poderia mandar seu arquivo principal.js e o arquivo index.html para eu conseguir te ajudar melhor?

Fico no aguardo =)

Oi Giovana, criei um arquivo no Github Gist acho que fica melhor pra me dar essa ajuda, segue o link abaixo.

foi refatorado o codigo o arquivo passou a ser o calc-imc.js

https://gist.github.com/thiagobaia/01191b15c2f2432df5e86a751f7ed3ae

Aguardo respota, abraço!

solução!

Oi Thiago, obrigada por mandar seu código!

Acontece que o for in que você utilizou no loop é destinado para objetos, o que está causando um erro na hora de definir os pacientes. Nesse caso, você pode fazer um forEach, um for..of ou um for normal, como o instrutor faz.

Veja o modo com for...of:

for(let paciente of pacientes) {

  let tdpeso = paciente.querySelector('.info-peso');
  let peso = tdpeso.textContent;

  let tdaltura = paciente.querySelector('.info-altura');
  let altura = tdaltura.textContent;

  let imc = paciente.querySelector('.info-imc');

  let error = document.querySelector('.error');

  if (peso > 299 || peso < 1) {
    imc.textContent = 'Peso invalido!';
    paciente.classList.add('error');
  } else if (altura > 2.5 || altura < 1) {
    error.textContent = 'altura invalida';
    paciente.classList.add('error');
  } else {
    imc.textContent = calculaImc(peso, altura)
  }
}

E agora, com for:

for(let i = 0; i < pacientes.length; i++) {
  let paciente = pacientes[i];

  let tdpeso = paciente.querySelector('.info-peso');
  let peso = tdpeso.textContent;

  let tdaltura = paciente.querySelector('.info-altura');
  let altura = tdaltura.textContent;

  let imc = paciente.querySelector('.info-imc');

  let error = document.querySelector('.error');

  if (peso > 299 || peso < 1) {
    imc.textContent = 'Peso invalido!';
    paciente.classList.add('error');
  } else if (altura > 2.5 || altura < 1) {
    error.textContent = 'altura invalida';
    paciente.classList.add('error');
  } else {
    imc.textContent = calculaImc(peso, altura)
  }
}

Espero ter ajudado! Abraços e bons estudos =)

Perfeito Giovanna, muito obrigado por exclarecer a duvida. :)