如何在使用ajax从数据库中删除表行后删除表行?

时间:2017-11-07 14:35:32

标签: jquery html ajax asp.net-mvc asp.net-ajax

我试图添加for( var market in json){ console.log(json[market]["rate"]); } 单击删除按钮后删除行但它不起作用..

$tr.find('td').fadeOut(1000, function () {
                            $tr.remove();

ajax函数运行良好,行从数据库中删除..

3 个答案:

答案 0 :(得分:0)

你的意思是这样吗?

success: function (result) {
                    var selector = "#"+ID;
                    $(selector ).fadeOut(1000);
                    setTimeout(function(){
                            $(selector ).remove()
                        }, 1000);
                },

答案 1 :(得分:0)

您的代码将失败,因为您正在使用未在方法中定义的$tr。 (如果你在外面定义它,那就更糟糕了。)

您必须能够访问存在删除按钮/链接的tr。如果您使用onclick事件处理程序来调用Delete方法,则可以将this与您传递的ID一起传递给Delete方法,并从中获取访问权限。

jQuery closest方法在这里很方便

 <a href="#" onclick="Delete(someId,this)">Delete</a>

在js中

function Delete(id,t) {

    $tr= $(t).closest("tr");

    // make the ajax  call
    // Use $tr now in your ajax call's success event

    $tr.find('td').fadeOut(700, function () {
        $tr.remove();    
    });
}

如果您使用非营养性javascript来绑定删除按钮/链接的click事件,则可以使用$(this)来获取对所点击项目的引用。在这种情况下,您实际上可以构建url以删除其中包含id的操作方法,并将其设置为链接的href值

<td>
     <a href="@Url.Action("Delete",new { id=1234})" class="delete-item">Delete</a>
</td>

1234替换为代码中的实际ID值 在js文件中,您可以使用attr方法读取所点击链接的网址。

$(function () {

    $("a.delete-item").click(function(e) {
        e.preventDefault();

        $tr = $(this).closest("tr");
        var url = $(this).attr("href");

        $.post(url).done(function() {
            $tr.find('td').fadeOut(700,function() {
                    $tr.remove();
            });
        });

    });
});

Here是两个解决方案的工作方式,供您参考(排除了ajax调用)。

答案 2 :(得分:0)

使用id

<td id="td..."> 

替换

$tr.find('td').fadeOut(1000, function () {
    $tr.remove();
});

$('#td...').fadeOut(1000, function () {
    $('#td...').remove();
});