Jquery 在ajax调用后无法删除元素

Jquery 在ajax调用后无法删除元素,jquery,ajax,phalcon,Jquery,Ajax,Phalcon,我有这个剧本: <script type="text/javascript"> $(document).ready(function(){ $(document).on('click','.remove',function(e){ // e.preventDefault(); var data = $(this).data('file'); $.ajax({ type:'POST',

我有这个剧本:

<script type="text/javascript">
$(document).ready(function(){
    $(document).on('click','.remove',function(e){
        // e.preventDefault();
        var data = $(this).data('file');
        $.ajax({
            type:'POST',
            url:'/backup/delete',
            data:'fileName='+data,
            success: function(data){
                $(this).parents('tr').remove();
            }
        },'json');
    });
});

$(文档).ready(函数(){
$(文档).on('click','remove',函数(e){
//e.预防违约();
var data=$(this.data('file');
$.ajax({
类型:'POST',
url:“/backup/delete”,
数据:'fileName='+数据,
成功:功能(数据){
$(this.parents('tr').remove();
}
}“json”);
});
});
和文件部分:

<tr>
                <td>adif20150331133844.adi</td>
                <td style="width: 2em"><span class="remove link" data-file="adif20150331133844.adi"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></span></td>
                <td style="width: 2em"><span class="restore link" data-file="adif20150331133844.adi"><span class="glyphicon glyphicon-repeat" aria-hidden="true"></span></span></td>
            </tr>

adif20150331133844.adi

任务是在删除文件后删除tr部分。我不能让它工作。文件被删除响应为200,可以,但是remove()不起作用,即使我在ajax中将success替换为complete。可能是什么?

将此作为一个变量,并使用它

$(document).ready(function(){
    $(document).on('click','.remove',function(e){
        // e.preventDefault();

var _this=$(this);  // assign this as one variable
        var data = _this.data('file');
        $.ajax({
            type:'POST',
            url:'/backup/delete',
            data:'fileName='+data,
            success: function(data){
                _this.parents('tr').remove();  // here this not .remove                 }
        },'json');
    });
});

元素的上下文在ajax调用中丢失,您可以使用选项
context
将上下文设置为ajax:

$.ajax({
        type:'POST',
        url:'/backup/delete',
        context:this,
        data:'fileName='+data,
        success: function(data){
            $(this).parents('tr').remove();
        }
    },'json');

使用
$(this)
设置
$this
变量,并在Ajax调用的成功处理程序中使用它

jQuery(function($) {
    $(document).on('click','.remove',function(e){
        var $this = $(this); // set it
        // e.preventDefault();
        var data = $(this).data('file');
        $.ajax({
            type:'POST',
            url:'/backup/delete',
            data:'fileName='+data,
            success: function(data){
                $this.parents('tr').remove(); // use it
            }
        },'json');
    });
});

$(文档).ready(函数(){
$(文档).on('click','remove',函数(e){
//e.预防违约();
var oThis=$(本);
var data=$(this.data('file');
$.ajax({
类型:'POST',
url:“/backup/delete”,
数据:'fileName='+数据,
成功:功能(数据){
oThis.parents('tr').remove();
}
}“json”);
});
});

在单击
数据时分配一些变量此
在成功函数中使用它

$(document).ready(function(){
    $(document).on('click','.remove',function(e){
        // e.preventDefault();
       var datathis=$(this);  // assign this as one variable
        var data = _this.data('file');
        $.ajax({
            type:'POST',
            url:'/backup/delete',
            data:'fileName='+data,
            success: function(data){
                datathis.parents('tr').remove();  
}
        },'json');
    });
$(this)
在ajax的success函数下无法工作,您必须将其存储到某个变量中。
$(document).ready(function(){
    $(document).on('click','.remove',function(e){
        // e.preventDefault();
       var datathis=$(this);  // assign this as one variable
        var data = _this.data('file');
        $.ajax({
            type:'POST',
            url:'/backup/delete',
            data:'fileName='+data,
            success: function(data){
                datathis.parents('tr').remove();  
}
        },'json');
    });