如何使用javascript正确删除表行?

如何使用javascript正确删除表行?,javascript,html,Javascript,Html,我正在使用下面的HTML <tr id="1"> <td></td> <td><input class="form-control" value="Extra Data"></td> <td><a href="#save" class="addsub_MS btn btn-primary btn-lg" id="1">Save</a></td> <td><a

我正在使用下面的HTML

<tr id="1">
<td></td>
<td><input class="form-control" value="Extra Data"></td>
<td><a href="#save" class="addsub_MS btn btn-primary btn-lg" id="1">Save</a></td>
<td><a href="#delete" class="delete_MS btn btn-primary btn-lg" id="1">Delete</a></td>
<td></td>
</tr>
这不会删除该行


有什么建议吗?

选择器不应该是

`$("a[href=#delete]") or $('.delete_MS')`
反而

$("a[href=#deleteparentms]")

您应该将
变量保存在不同的变量中,否则您在
done(…)
函数中的引用与您单击的原始
a
的引用不同:

$("a.delete_MS").click(function() {
    var id;
    var that = this;
    if ($(this).hasClass('delete_MS')) {
        var id = $(this).attr("id");
    }
    var data = {
        id: id
    };

    $.ajax({
        type: "POST",
        url: "deleteparent.php",
        data: data
    }).done(function() {
        $(that).closest('tr').remove();
    });
});

内部的
完成
不是锚定

console.log(此)
将显示

你可以用bind

}).done((function() {
    $(this).closest('tr').remove();
}).bind(this))};
}).done((function() {
    $(this).closest('tr').remove();
}).bind(this))};