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

var peso ou tdPeso.textContent

No ultimo exercicio da aula 2 (12 Mãos na Massa: Validando os dados do usuário) ao validar se o peso e altura são validos eh usado o codigo:

if (peso <= 0 || peso > 1000) {
    console.log("Peso inválido!");
    tdPeso.textContent = "Peso inválido!";
    pesoEhValido = false;

}

if (altura <= 0 || altura >= 3) {
    console.log("Altura inválida!");
    tdAltura.textContent = "Altura inválida!";
    alturaEhValida = false;
}

porem, ja haviam sido criadas as var

var altura = tdAltura.textContent;
var peso = tdPeso.textContent;

porem quando uso o codigo

if (peso <= 0 || peso > 1000) {
    console.log("Peso inválido!");
    peso = "Peso inválido!";
    pesoEhValido = false;

}

if (altura <= 0 || altura >= 3) {
    console.log("Altura inválida!");
    altura = "Altura inválida!";
    alturaEhValida = false;
}

as strings "peso invalido" e "altura invalida" são ignorados e o navegador retorna o numero que foi colocado no HTML.

Minha duvida eh sobre o porque o codigo se comportar dessa forma. Lembro da aula de logica de programacao sobre o javascript devolver string, eh esse o caso????

2 respostas
solução!

Olá Fernado, tudo bem com você?

Pelo que eu entendi, você queria que da segunda forma se comportasse da mesma que a primeira, correto?

A questão é que:

var altura = tdAltura.textContent;
var peso = tdPeso.textContent;

São apenas números, o que estamos dizendo nesse código é:

Atribua a variável altura o valor que está dentro do conteúdo de tdAltura

Basicamente o que temos é:

tdAltura => <td> 1.8 </td>

var  altura = tdAltura.textContent;
var altura = 1.8

Então quando você faz:

    altura = "Altura inválida!";

Você está apenas mudando o valor da variável altura, que antes era um numero, virou uma frase, esse trecho de código acaba nunca indo para o html pois não fizemos nenhuma ligação

Diferente da seguinte maneira:

    tdAltura.textContent = "Altura inválida!";

Aqui o comportamento é diferente, é como dizer:

Coloque dentro do conteúdo de tdAltura o valor "Altura inválida!;

E dessa forma de fato estamos pegando um elemento que está dentro do nosso html e fazendo uma ligação (.textContent) de forma que reflita na tela e altere o valor :)

Conseguiu Compreender?

Abraços e Bons Estudos!

Ola geovani,

Consegui entender sim,

Obrigado pela explicacao.

=D