Je vois souvent des exemples d'utiliser le mot-clé SO, P> ceci code> dans jQuery. Parfois, je le vois utilisé avec les dollars et les parenthèses, d'autres fois sans. Et je pensais que je l'ai vu utilisé avec un peu de chacun. var id = this.attr('id');
var id = $(this).attr('id');
var id = $this.attr('id');
4 Réponses :
Voici une bonne explication de l'utilisation de jQuery de Ceci code> est un objet JavaScript natal qui fait référence à l'objet actuel. Les fonctions de jQuery définies avec jquery.fn. Code>, ceci code> est un objet jQuery par lui-même. $ (this) CODE> est la voie de JQuery de tourner un code JavaScript code> dans un objet JQuery. Et $ ceci code> est juste un nom de variable. Si vous ne l'avez pas défini, ce serait non défini code>. P>
ceci code>: p>
Ce code> n'est pas uniquement utilisé dans les gestionnaires d'événements, il s'agit d'une référence à l'objet actuel. Voici une autre explication: Justin.harmonise. fm / index.php / 2009/09 / ...
'Ceci' est un mot-clé d'objet JavaScript pour faire référence à l'objet actuel, '$ (ceci)' est la fonction Wrapper JQuery qui allume l'objet actuel en un objet JQuery, et lorsque vous voyez '$ ceci' à une variable que le développeur créé pour se référer à l'objet $ (cet objet), il est utile pendant une boucle de $. Par exemple:
Pourriez-vous expliquer votre réponse pour montrer quand et pourquoi le plain ceci code> pourrait entrer en jeu
La seule raison d'utiliser la simple "Ceci" dans cette situation est que si vous devez accéder à une méthode ou à une variable sur le nœud DOM RAW telle que ici: w3schools.com/jsref/dom_obj_node.dom par exemple, vous ne pourrez pas utiliser une méthode JQuery sur la plaine" Ceci "telle que: this.hide ();
Oh je vois. Donc, il serait donc prudent de dire que quelle que soit la "opération" sur ce code> aurait la possibilité d'être non conforme à la navigation non croisée? Alors que l'enveloppement dans $ () code> et utiliser une méthode jQuery serait beaucoup plus sûr? Il serait peut-être bon de mettre à jour votre réponse pour refléter ces implications de ce code> car l'OP voulait savoir à ce sujet.
Aucun exécution d'une opération sur Ce code> ne le rendra pas moins conforme. Enroulez-le dans $ () CODE> vous donne simplement la fonctionnalité que JQuery apporte à la table et ils ont été très prudents de faire leurs méthodes très croisées compatibles. Ainsi, en utilisant $ (this) code> en réalité est moins transversal de navigateur que Ce code> uniquement si l'équipe JQuery a raté quelque chose. $ (this) code> a les mêmes méthodes que ceci code> plus toutes les méthodes de l'objet JQuery. L'OP a été confondu sur le $ CU code> variable qu'il a vu utilisé dans d'autres développeurs, mais cette variable n'est qu'une version mise en cache de $ (this) code> habituellement.
Je dis que c'est l'élément DOM "brut", car JQuery est souvent utilisé pour envelopper des éléments de DOM em> Dans une enveloppe JQuery, vous pouvez donc utiliser des méthodes jQuery comme est identique à p> la raison en est d'éviter d'invoquer continuellement la fonction dans de rares cas, Ceci code> est une chose javascript. Il fait référence au "contexte" une fonction s'exécute. Pour la plupart des gestionnaires d'événements, c'est l'élément DOM ("brut") qui écoute un événement. Dans d'autres situations, cela signifiera d'autres choses; Googling " Ceci code> en JavaScript" pourrait être enlaumer.
attr code> au lieu des utilisateurs habituels ( getattribute code>, setattribute code>, etc.). Cette emballage est accomplie avec la fonction $ code>, et c'est là que vous voyez $ (this) code>. Par exemple: p>
$ ceci code> ou Ce $ code> est juste un nom de variable. Mais, il est souvent conventionnel de faire une mission comme p> $ code>, qui est quelque peu chère Comme cela crée un nouvel objet Wrapper JQuery à chaque fois. Si vous stockez l'élément emballé dans une variable, vous gagnez légèrement en efficacité. P>
Ce code> pourrait déjà être un wrapper JQuery. L'affaire qui se présente souvent pour moi est lorsque vous écrivez des plugins JQuery. Dans ce cas, vous pouvez faire des choses comme ceci.attr ("id") code> directement, sans l'envelopper d'abord, car il est déjà enveloppé. Dans les cas habituels (gestionnaires d'événements, $. Chaque code>, etc.) L'emballage est nécessaire. P> p>
Oui, bonne réponse. Et cette dernière partie aide à expliquer quelque chose que j'ai lu quelque part, mais je pourrais le retrouver. J'ai vu ceci.attr ("id") code> utilisé, mais cela n'a pas fonctionné pour moi. Je pense que c'est ce qui me confondu le plus.
au lieu d'appeler $ (this) code> plusieurs fois, il est plus efficace de le stocker comme une variable, généralement appelée $ ceci code> afin que les gens sachent ce qu'il est. p>
"Ceci" est une référence auto JS et la mise en dollars () vient de le renvoyer avec la classe JQuery. Ce qui fait référence à $ ceci - c'est juste un nom de variable (non prédéfini) et est généralement utilisé dans les plug-ins jQuery pour toujours avoir une référence à la classe mère du 1er niveau des classes d'enfants