71 votes

Différence entre $ (this) et this dans jQuery

Quelle est la différence fondamentale entre utiliser $ (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'));
});
 

Ce que je pensais être "$ (ceci)" contiendra toutes les fonctions que "ceci" a et plus .. Mais cela ne semble pas être le cas.

Alors, qu'est-ce que $ (this) exactement? et

Hw puis-je savoir quelles fonctions sont disponibles lorsque je l'utilise? (Je sais que je peux les faire passer au travers de firebug. mais j'aimerais savoir s'il existe un autre moyen - un doc peut être)

156voto

Chris Jester-Young Points 102876

this est l'objet DOM, alors que $(this) est le wrapper jQuery qui le contient.

Lorsque vous utilisez this , vous pouvez appeler des méthodes DOM dessus, mais pas des méthodes jQuery. Lorsque vous utilisez $(this) , vous pouvez y appeler des méthodes jQuery, mais pas des méthodes DOM.

10voto

Pranay Rana Points 69934

$ (this) - représente l’élément DOM actuel sur lequel cette fonction est appelée

Le mot - clé this - En JavaScript, cela fait toujours référence au "propriétaire" de la fonction que nous exécutons, ou plutôt à l'objet dont une fonction est une méthode.

3voto

each Points 1

dans jQuery, cela fait référence à l'objet DOM et $ (this) fait référence au même objet mais avec l'ajout des méthodes jQuery

vous ne pouvez pas appeler this.each () car chacune n’est pas une méthode DOM, c’est une méthode jquery

vous pouvez appeler $ (this) .each () car $ (this) renvoie un objet jquery

2voto

Alek Davis Points 3320

Voici deux articles qui pourraient vous être utiles:

Qu'est-ce que c'est? par Mike Alsup

jQuery c'est ceci: démystifié par Remy Sharp

2voto

griegs Points 14142

$ (this) est l'objet actuel sélectionné à l'aide d'un sélecteur jQuery ou d'un événement associé à l'objet.

Donc, si vous avez $('#myelement').click(..... alors $(this) réfère à l'élément sur lequel l'utilisateur a cliqué de sorte que $(this).hide() masque cet élément.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X