有问题使用jquery dataTable删除html表行

时间:2014-07-31 16:07:02

标签: javascript jquery html ajax datatable

我有一个html表,其中包含数据库中的数据。

我想要的是从html表中删除一行,但不在数据库中删除。

在我的操作栏中,我在每一行都有一个删除按钮,如果我在该特定行上按删除该行应删除。

我想删除html表中的特定行,但不删除数据库中的实际数据。

脚本:

$(document).ready(function(){
$.ajax({
url: 'process.php',
type: 'post',
data: {tag: 'getData'},
dataType: 'json',
success: function(data){
        if(data.success){
            $.each(data, function(index, record){
                if($.isNumeric(index)){
                    var row = $("<tr />");
                    $("<td />").text(record.name).appendTo(row);
                    $("<td />").text(record.age).appendTo(row);
                    $("<td />").text(record.gender).appendTo(row);
                    $("<td />").html(record.action).appendTo(row);
                    row.appendTo("#myTable2 tbody");
                }
            })
            }
            $('#myTable2').dataTable({
            "bjQueryUI": true,
            "sPaginationType": "full_numbers"
            });

            $("#myTable2 .dltRow").bind( "click", function(event) {
            var target_row = $(this).closest("tr").get(0);
            var aPos = oTable.fnGetPosition(target_row); 
            oTable.fnDeleteRow(aPos);
            });

        }

});

});

1 个答案:

答案 0 :(得分:1)

当您引用刚刚创建的行时,在each函数中绑定事件会更容易:

$.each(data, function(index, record){
    if($.isNumeric(index)){
        var row = $("<tr />");
        $("<td />").text(record.name).appendTo(row);
        $("<td />").text(record.age).appendTo(row);
        $("<td />").text(record.gender).appendTo(row);

        var $actionCell = $("<td />");
        $actionCell.html(record.action)
        $actionCell.find('.dltRow').on("click", 
            function() { row.remove(); });
        $actionCell.appendTo(row);
        row.appendTo("#myTable2 tbody");
    }
})

或者您可以将其保留在bind来电并在那里使用remove方法:

$("#myTable2 .dltRow").bind( "click", function(event) {
    $(this).closest("tr").remove();
});