2010-12-07 2 views
6
$(document).ready(function() { 
      $(".po").click(function(){ 
       var po = $(this).text(); 
       var dataString = 'po='+ po; 

       $.ajax 
        ({ 
        type: "GET", 
        url: "projectitems.php", 
        data: dataString, 
        cache: false, 
        success: function(html) 
         { 


$(this).closest(".resultsItems").html(html); 
         } 
        }); 
      });   
     }); 

La ligne $(this).closest(".resultsItems").html(html); à quoi fait-il référence? J'essaye d'ajouter le résultat ajax retourné à un <td> appelé .resultsItems mais seulement à celui ci-dessous le sélecteur intial cliqué? Est-ce possible? Juste pour clarifier je ne demande pas ce que (cela) signifie dans jQuery, je demande ce que (ce) fait référence dans mon code ci-dessus!

+0

pas vraiment un double comme je vous demande ce que my (this) fait référence à dans mon code – benhowdle89

+2

Astuce: Si vous avez besoin de faire référence à un "this" spécifique dans ce bloc de code, vous pouvez ajouter quelque chose comme ça dans le contexte approprié: 'var t = this; 'Plus bas dans vos appels de fonction, vous pouvez utiliser' $ (t) 'au lieu de' $ (this) '. –

+2

@meder - ce n'est pas un doublon, regardez ma réponse. –

Répondre

9

this fait référence à l'objet de paramètres $.ajax(). Pour obtenir ce que vous voulez, vous aurez besoin de maintenir this en utilisant l'option context comme ceci:

$.ajax({ 
    context: this, 
    type: "GET", 
    url: "projectitems.php", 
    data: dataString, 
    cache: false, 
    success: function(html) { 
    $(this).closest(".resultsItems").html(html); 
    } 
}); 
+3

Bah, cette maudite barre orange juste au moment où j'achève ma réponse. –

+0

Merci! Ce n'est pas un doublon pour tous ceux qui ont "scanné" ma question plutôt que de la lire correctement – benhowdle89

3

Sur le site jQuery:

L'objet this pour tous seront l'objet dans la context propriété passé à $.ajax dans les paramètres; Si n'a pas été spécifié, il s'agira d'une référence aux paramètres Ajax eux-mêmes.

+0

J'ai cherché ceci (jeu de mots) sur le site de jQuery. Où est située cette citation? – Hogan

+0

@Hogan: c'est ici http://api.jquery.com/jQuery.ajax/ - le paragraphe Fonctions de rappel. –

+0

@Hogan Google pour une partie de la phrase comme une chaîne entre guillemets, et vous atterrirez à [la documentation jQuery.ajax()] (http://api.jquery.com/jQuery.ajax/). – Phrogz

0

Vous pouvez lire en détail sur le mot-clé thishere

En fait, dans votre cas, il fait référence à l'objet window car c'est l'objet window qui a déclenché l'événement success sur votre appel ajax. Vous pouvez cependant saisir la portée de la $(".po") juste au-dessus de l'appel ajax en faisant:

var that = this; 

Ensuite, si vous utilisez that.closest()... qui référence à l'objet $(".po")