Мое первое предположение, что this
не то, что вы думаете, это прямо здесь:
success: function(){
$(this).parent().parent().parent().remove();
},
Из тонкой инструкции :
контекст
Этот объект станет контекстом всех обратных вызовов Ajax. По умолчанию context
- это объект, представляющий параметры ajax, используемые в вызове ($.ajaxSettings
объединен с параметрами, переданными в $.ajax
).
Таким образом, в вашем success
обратном вызове this
является скорее простым объектом, чем чем-то в DOM.
Существует два стандартных решения. Вы можете сохранить ссылку на this
и использовать это:
var self = this;
$.ajax({
// ...
success: function() {
$(self).parent().parent().parent().remove();
},
// ...
или используйте опцию context
для $.ajax
:
$.ajax({
// ...
context: this,
success: function() {
$(this).parent().parent().parent().remove();
},
// ...
И, конечно, исправьте вещи failure
, как описано в комментариях.