ti-enxame.com

Diferença entre $ (this) e isso em jquery

Qual é a diferença fundamental entre usar $ (this) vs this

$('.viewComments').click(function(ev){
    //returns the desired value
    alert(this.getAttribute('id'));

    //Gives an error sayin function is not defined 
    alert($(this).getAttribute('id'));

    //returns the desired value
    alert($(this).attr('id'));
});

O que eu pensei que era "$ (this)" conterá todas as funções que "isso" tem e mais ... Mas isso não parece ser o caso.

Então, o que exatamente é $ (this)? e 

Hw sei quais funções estão disponíveis quando estou usando? (Eu sei que posso obtê-los através do firebug. Mas eu gostaria de saber se existe alguma outra maneira - algum doc pode ser)

63
Sheldon Fernandes

this é o objeto DOM, enquanto $(this) é o wrapper jQuery em torno do mesmo.

Ao usar this, você pode chamar métodos DOM, mas não métodos jQuery. Ao usar $(this), você pode chamar métodos jQuery, mas não métodos DOM.

140
Chris Jester-Young

$ (this) - representa o elemento DOM atual no qual o evento esta função é chamado 

A palavra-chave this - Em JavaScript, isso sempre se refere ao “dono” da função que estamos executando, ou melhor, ao objeto do qual uma função é um método. 

8
Pranay Rana

No jQuery, isso se refere ao objeto DOM e $(this) refere-se ao mesmo objeto, mas com métodos jQuery adicionados

você não pode chamar this.each() porque cada um não é um método DOM, é um método jquery

você pode chamar $(this).each() porque $(this) retorna um objeto jquery

3
each

Aqui estão dois artigos que você pode achar úteis:

O que é isso? de Mike Alsup

jQuery é isto: desmistificado por Remy Sharp

2
Alek Davis

$ (this) é o objeto atual que foi selecionado usando um seletor jQuery ou evento anexado ao objeto.

portanto, se você tiver $('#myelement').click(....., $(this) fará referência ao elemento que foi clicado, de modo que $(this).hide() oculte esse elemento.

1
griegs

em jQuery, a notação $ () é uma abreviação para o seletor jQuery, então se você diz $ (this), você está pedindo ao jQuery para selecionar novamente seu objeto. Então você tem as funções usuais do jQuery disponíveis. "This" é o objeto selecionado pela chamada externa do jQuery.

0
Marco

$ (this) é um objeto jQuery e você pode usar o poder e a beleza do jQuery, mas com a palavra-chave 'this', é necessário usar JavaScript nativo.

0
Jithi Vasudev