Javascript 从Ajax调用中删除数据表中的行

Javascript 从Ajax调用中删除数据表中的行,javascript,jquery,datatables,Javascript,Jquery,Datatables,我有一个DataTables(DataTables.net)表设置,其中有一个自定义列,其中有用于不同类型操作的图标 其中一个操作是删除,我不想将数据重新加载到表中,因此我想知道是否有任何内置函数用于在本地删除datatable行(因此我的脚本删除服务器上的实际post,然后我可以删除datatable中的同一行) 经过一些研究,我发现了“fnDeleteRow”,但我不知道如何使用它。在我的脚本中,我有一个ajax调用,在成功事件中,我想删除该行,但我很难识别单击了链接的行。以下是我目前的处境

我有一个DataTables(DataTables.net)表设置,其中有一个自定义列,其中有用于不同类型操作的图标

其中一个操作是删除,我不想将数据重新加载到表中,因此我想知道是否有任何内置函数用于在本地删除datatable行(因此我的脚本删除服务器上的实际post,然后我可以删除datatable中的同一行)

经过一些研究,我发现了“fnDeleteRow”,但我不知道如何使用它。在我的脚本中,我有一个ajax调用,在成功事件中,我想删除该行,但我很难识别单击了链接的行。以下是我目前的处境:

function Delete(id) {
    $.ajax({
        url: "ajax/ajax.php",
        type: "POST",
        data: {
            action: "delete",
            id: id
        },
        success: function(response){
            oTable = $('#table').DataTable();
            var row = oTable.closest('tr');
            var nRow = row[0];
            oTable.DataTable().fnDeleteRow(nRow);
        },
        error: function (response) {
            alert("Something went wrong.");
            console.log(response);
        },
    });
};
这将在控制台中打印以下内容:

TypeError: oTable.closest is not a function
我对jQuery非常陌生,不知道如何在我的案例中实现这一点。你们有谁知道吗?我猜想,即使我在成功事件中的脚本有正确的语法,它也不知道哪一行有第一次单击的按钮/链接。我如何确保它能做到

编辑: 这是如何启动我的数据表,以防混淆:

function DrawTable() {
    $('#table').DataTable( {
        "cache": false,
        "columnDefs": [
            {
                "targets": [ 0, 1 ],
                "visible": false,
                "searchable": true
            }
        ]
    } );
}
我被告知要使用JSFIDLE,所以我上传了一个。从未使用过此网站,并且生成了我的标记,但我手动创建了一个。

也许已经太晚了,但我还是要说。在网上搜索了两天之后,我找到了一个没有任何DataTable函数的简单解决方案


删除
上面的这个单元格有一个onclick函数,它接受两个参数,第一个(this.id)是按钮的id(来自DB,将传递给ajax以更新DB),第二个(this)是按钮本身的索引(稍后我们将从中提取行的索引)

功能删除记录(机械id,行索引){
$.ajax({
url:“{{action('MechanicController@destroy')}}",
键入:“get”,
数据:{
“id”:机械id,
“_令牌”:令牌,
},
成功:函数()
{
var i=行索引.parentNode.parentNode.rowIndex;
文件.getElementById(“表1”).deleteRow(i);
}
});  
}
现在在成功函数中,我使用了两行: 第一个是从按钮中提取行索引(2个父级,因为在本例中,我们必须从按钮的父级传递,然后从按钮的父级传递,该父级就是行)


第二行是一个简单的从表1中删除我们索引的行,这是我的表的名称

尝试最后查看此页注释在初始化插件时存储对表api的引用,不要创建新的one@carlodenaro我在发帖之前读过这篇帖子,但我从来没有真正理解他最后一句话中使用的“idindex”。这一定是他的项目中的某个东西,在我看来,它不符合上下文主要问题是
DataTable()
不返回jQuery对象,它返回插件API@carlodenaro我现在在问题中链接了一个JSFIDLE:)