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

Dúvida com relação ao exercício "obtendo placar".

Boa tarde, gostaria de saber porque nesse exercício "obtendo placar" na função atualizaPlacar(), na variável linha o "this" não é usado dessa forma "$(this)", segue função:

function atualizaPlacar(){
    $.get("http://localhost:3000/placar",function(data){
        $(data).each(function(){
            var linha = novaLinha(this.usuario, this.pontos);            
            $("tbody").append(linha);
        });
    });
}
3 respostas
solução!

Ao meu entender, quando chamamos $(data), já estamos atribuindo a cada um do elementos o $(this) para poder manipular o DOM deste elemento em questão. Me corrija, caso esteja errado

Boa noite, desculpa pela demora Yuri, o link em questão é de um servidor "Node.js" instalado na minha máquina(local) que foi instruído durante o curso de "jQuery" pelo instrutor para se trabalhar com Ajax, o problema é que eu ainda não fiz o curso de "Node.js" mas eu acredito que as informações contidas nesse Link estão no formato de um array "JavaScript" normal, pensando bem por isso o instrutor usa apenas o "this" e não o "$(this)" na variável "linha", o único motivo dele utilizar o dólar na variável "data" é pra utilizar a função "each" do "jQuery", se fosse com um "for" normal do "JavaScript" não haveria a necessidade desse dólar na variável "data", acho que entendi rs, más confirma pra mim o que eu falo faz sentido ?

Segue alguns itens contidos no Link, retornado pela função "get":

[{"_id":0,"texto":"Alura, Cursos online de tecnologia que reinventam sua carreira.","tempo":15}, {"_id":1,"texto":"Debuggers não consertam erros, apenas os exibem em slow motion.","tempo":8}, {"_id":2,"texto":"Caelum, Ensino e Inovação.","tempo":5}]

eu achava que a variável "data" já vinha em formato "jQuery".

Boa tarde Lincoln, tudo bem?

a variável data esta recebendo o $, pois os arrays do Javascript não podem acessar a funções do Jquery, portando apenas os objetos do jQuery podem acessar a função .each().

No código:

var linha = novaLinha(this.usuario, this.pontos);

O this esta sendo usado para acessar um atributo que foi passado pelo array data, ele não está utilizando os "poderes" do Jquery, mas esta apenas sendo utilizado em sua função normal do java script e por isso não precisa ser encapsulado pelo $.