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

uma pequena duvida

$('#botao-atualiza').click(function() {
    $.get('http://mirrorfashion.caelum.com.br/treinamentos', function(retorno) {
        $.each(retorno.treinamentos, function() {
            var treinamento = this;
            $('<li>').css('color', 'green').text(treinamento.nome).appendTo('#lista');
        });
     } , 'jsonp');
});

qual foi a necessidade de criar a variável "treinamento" e passar para ela aquele "this ".

3 respostas

Oi Julio, tudo bem? Neste caso o $this corresponde a cada um od objetos retornados pelo each.

O $this no Javascript tem um comportamento muito dinamico e pode confundir muitas vezes ao que o mesmo está se referindo, por questões de semantica e boa prática, o uso da variavel temporária (treinamento) pode ser uma ideia legal a se seguir.

Espero ter ajudado. Bons estudos...

solução!

Quando você usa each, você esta fazendo um loop for de maneira funcional. No caso do jQuery, como temos acesso ao primeiro, segundo, terceiro elemento? Usamos this. A função passada para o each é chamada repetidamente para cada elemento de uma lista e a cada chamada o this corresponde ao primeiro, ao segundo, ao terceiros em diante elementos.

O servidor devolve um objeto JSONP? porque retorno.treinamentos? É uma informação passada pelo servidor pra gente ? Não vi no JSON como ele da o nome do objeto!