Question Quelle est la différence entre "$ (this)" et "this"?


Je lisais le http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery. Et a été confondu avec l'utilisation de this dans ces 2 segments de code.

     $(document).ready(function() {
        $("#orderedlist").find("li").each(function(i) {
        $(this).append( " BAM! " + i );
       });
     });

    $(document).ready(function() {
      // use this to reset several forms at once
       $("#reset").click(function() {
        $("form").each(function() {
         this.reset();
        });
     });
   });

Quand avons-nous besoin $(this) et this? Et quelle est la différence entre eux? Merci d'avance.


16
2017-08-29 15:10


origine


Réponses:


this fait référence à l'élément DOM lui-même; $(this) encapsule l'élément dans un objet jQuery.

Dans le premier exemple, vous avez besoin $(this) car .append() est une méthode jQuery.

Dans le deuxième exemple, reset() est une méthode JavaScript, donc aucun wrapper jQuery n'est nécessaire.


16
2017-08-29 15:12



this en soi n'est qu'un objet régulier.

$(this) prend this et ajoute le wrapper jQuery afin que vous puissiez utiliser les méthodes jQuery avec l'objet.


7
2017-08-29 15:11



this fait référence à un objet DOM. Alors reset() est une fonction d'un objet DOM de forme. append() d'autre part est une méthode jQuery donc il doit être appelé par un objet jQuery, donc le $(this).

Lorsque vous entourez this avec $, vous récupérez un objet jQuery représentant cet objet DOM.


3
2017-08-29 15:11



Généralement en jQuery, this sera une instance de l'élément DOM en question, et $(this) construit un objet jQuery autour this qui vous donne les méthodes habituelles de jQuery comme each() et val().


2
2017-08-29 15:12



vous n'avez besoin que de $ (this) si vous le suivez avec une fonction jquery sur la même ligne de code.

ex: $(this).find(...);    $(this).val();   etc

ou bien vous n'avez besoin que de this.


1
2017-08-29 15:13