2010-12-07 8 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 línea $(this).closest(".resultsItems").html(html); ¿A qué se refiere exactamente (esto)? Estoy tratando de anexar el resultado ajax devuelto a un <td> llamado .resultsItems pero solo al que se encuentra debajo del selector seleccionado inicialmente. es posible?

Para dejar en claro que no estoy preguntando qué significa (esto) en jQuery, estoy preguntando a qué (esto) se refiere en mi código anterior.

+0

no es realmente un duplicado que a mí preguntando qué mi (esto) se refiere a en mi código – benhowdle89

+2

Sugerencia rápida: si necesita referirse a un '' this "' específico en ese bloque de código, puede agregar algo como esto en el contexto apropiado: 'var t = this; 'Más abajo en las llamadas a funciones, puede usar' $ (t) 'en lugar de' $ (this) '. –

+2

@meder - esto no es un duplicado, mira mi respuesta. –

Respuesta

9

this hace referencia al objeto de configuración $.ajax() objeto. Para conseguir lo que quiere, que necesita para mantener this mediante la opción context así:

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

Bah, esa maldita barra de color naranja justo cuando estoy terminando mi respuesta. –

+0

¡Gracias! Esto NO es un duplicado para todas aquellas personas que "escanearon" mi pregunta en lugar de leerla correctamente – benhowdle89

3

Desde el sitio de jQuery:

El objeto this para todos ellos ser el objeto en la propiedad context pasado a $.ajax en los ajustes; si que no se especificó, será una referencia a la configuración de Ajax .

+0

Lo busqué (juego de palabras) en el sitio de jQuery. ¿Dónde está ubicada esta cita? – Hogan

+0

@Hogan: está aquí http://api.jquery.com/jQuery.ajax/ - el párrafo Funciones de devolución de llamada. –

+0

@Hogan Google para una parte de la frase como una cadena entre comillas, y llegarás a [la documentación de jQuery.ajax()] (http://api.jquery.com/jQuery.ajax/). – Phrogz

0

Usted puede leer en detalle acerca de la palabra clave thishere

Básicamente, en su caso, se refiere a el objeto ventana porque es el objeto ventana que ha activado el evento success en su llamada ajax. Sin embargo, puede captar el alcance de la $(".po") justo por encima de la llamada ajax haciendo:

var that = this; 

Entonces si utiliza that.closest()..., que hará referencia al objeto $(".po")

Cuestiones relacionadas