Minha 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 ?
Minha 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 ?
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!
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. :)