web-dev-qa-db-fra.com

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 

Comment 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)

63
Sheldon Fernandes

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

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

140
Chris Jester-Young

$ (this) - représente l'élément DOM actuel sur lequel l'événement est appelé cette fonction 

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. 

8
Pranay Rana

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

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

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

3
each

Voici deux articles qui pourraient vous être utiles:

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

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

2
Alek Davis

$ (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) fera référence à l'élément sur lequel vous avez cliqué de sorte que $(this).hide() masque cet élément.

1
griegs

dans jQuery, la notation $ () est un raccourci pour le sélecteur jQuery. Par conséquent, si vous dites $ (this), vous demandez à jQuery de sélectionner à nouveau votre objet. Ensuite, vous avez les fonctions jQuery habituelles disponibles . "Ceci" est l’objet sélectionné par l’appel jQuery externe.

0
Marco

$ (this) est un objet jQuery et vous pouvez utiliser la puissance et la beauté de jQuery, mais avec le mot clé 'this', il est nécessaire d'utiliser du JavaScript natif.

0
Jithi Vasudev