cómo acceder a la función de callback de $ (this) inside ajax

Parece que no puedo acceder a $ (esto) dentro de la función de éxito jquery ajax. por favor vea el código a continuación.

$.ajax({ type: 'post', url: '', data: 'action='+$action+'&user_id='+$user_id, success: function(response){ //cannot access $(this) here $(this).parent().remove(); } }); 

¿Qué debería ser $(this) ? Si tiene una referencia fuera de esa función, puede almacenarla en una variable.

 $('#someLink').click(function() { var $t = $(this); $.ajax( ... , function() { $t.parent().remove(); }); } 

Mira la opción de contexto: funciona perfectamente para mí:

 $.ajax({ context: this, type: 'post', url: '', data: 'action='+$action+'&user_id='+$user_id, success: function(response){ //can access this now! } }); 

Intenta llamar a $.proxy , para cambiar el scope de this dentro de la función:

 $.ajax({ success: $.proxy(function(response) { $(this).parent().bla(); }, $(this)); }); 

Si desea que this sea this en el contexto de su llamada ajax, también puede usar .bind() la siguiente manera:

 $.ajax({ url: 'some_url' success: function(data) { // do something 'this' }.bind(this) }) 

Vincula el valor de this dentro de la callback exitosa a this afuera.

No puedo ver $(this) haciendo referencia a nada, pero la manera más fácil sería darle al elemento una clase o identificación y hacer referencia a eso desde jquery:

En lugar de:

 $(this).parent().remove(); 

Podrías hacerlo:

 $('#element_id').parent().remove(); 

Nota: Aquí supongo que está tratando con un elemento / iteración.