2010-12-07 12 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); 
         } 
        }); 
      });   
     }); 

Die Linie $(this).closest(".resultsItems").html(html); Was genau bezieht sich (dies)? Ich versuche, das zurückgegebene Ajax-Ergebnis an eine <td> namens .resultsItems, aber nur an die unter dem angeklickten Selektor initial? Ist das möglich?

Nur um es klar zu machen, ich frage nicht, was (das) bedeutet in jQuery, ich frage was (das) bezieht sich auf in meinem Code oben!

+0

nicht wirklich ein Duplikat beziehen, wie ich bin zu fragen, was mein (dies) bezieht sich auf in meinem Code – benhowdle89

+2

Quick tip: Wenn Sie auf ein bestimmtes "this" in diesem Block des Codes verweisen müssen, können Sie etwas in dem entsprechenden Kontext hinzufügen: 'var t = this; 'Weiter unten in Ihren Funktionsaufrufen können Sie' $ (t) 'anstelle von' $ (this) 'verwenden. –

+2

@meder - das ist kein Duplikat, schau auf meine Antwort. –

Antwort

9

this bezieht sich auf das $.ajax() Einstellungsobjekt. Zu bekommen, was Sie wollen, müssen Sie this mithilfe der context Option wie folgt erhalten:

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

Bah, diese verdammte orange Bar, gerade als ich meine Antwort einwickle. –

+0

Danke! Dies ist KEIN Duplikat für all jene Leute, die meine Frage "gescannt" haben, anstatt sie richtig zu lesen – benhowdle89

3

Aus dem jQuery-Website:

Das this Objekt für alle von ihnen werden zu $.ajax in den Einstellungen übergeben in der context Eigenschaft das Objekt sein; Wenn das nicht angegeben wurde, wird es eine Referenz auf die Ajax-Einstellungen selbst sein.

+0

Ich suchte nach diesem (Wortspiel beabsichtigt) auf der jQuery Seite. Wo befindet sich dieses Zitat? – Hogan

+0

@Hogan: Es ist hier http://api.jquery.com/jQuery.ajax/ - der Callback-Funktionen-Absatz. –

+0

@Hogan Google für einen Teil der Phrase als String in Anführungszeichen, und Sie landen bei [die jQuery.ajax() -Dokumentation] (http://api.jquery.com/jQuery.ajax/). – Phrogz

0

Sie ausführlich über die this Stichwort lesen here

Grundsätzlich in Ihrem Fall bezieht er sich auf Das Fensterobjekt, weil es das Fensterobjekt ist, das das Ereignis success bei Ihrem Ajax-Aufruf ausgelöst hat. Sie können jedoch den Umfang der $(".po") erfassen knapp über dem Ajax-Aufruf, indem Sie:

var that = this; 

Dann, wenn Sie that.closest()... verwenden, die auf das Objekt $(".po")

Verwandte Themen