如何从多个数据表中删除特定数据表中的行?

时间:2013-06-19 12:32:48

标签: jquery datatables

我一直在使用jQuery数据表,并且在具有一个表的页面上,以下代码可以正常工作,但在一个页面上我使用制表符并且它们每个都有数据表。他们的设计是用

设置的
var oTable = $('.dataTable').dataTable({....})

我遇到的问题是当我去尝试删除第一个表之外的表中的行时。每行作为class = delete的链接,所以我有一个像这样的javascript

$('.delete').click(function(e) {
            e.preventDefault();
            row = $(this).closest("tr").get(0);
            oTable.fnDeleteRow(oTable.fnGetPosition(row));
        });

当我尝试从第二个表中删除一行时,例如它检索row =类似于2并删除第一个表中的相应行。

我无法想出一种识别确切oTable的方法。我尝试为每个数据表分配一个数字ID并在click函数中检索它并像这样识别oTable

    <table class="table dataTable repsonsive" id="4">

    $('.delete').click(function(e) {
            e.preventDefault();
            table = $(this).closest("table").attr('id');
            row = $(this).closest("tr").get(0);
            oTable[table].fnDeleteRow(oTable[table].fnGetPosition(row));
        });

我猜oTable不像收集那样工作。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这就是我将数据从一个数据表传递到另一个数据表的方式(我使用jquery 1.9) 我将oTable指定为全局javascript变量,然后将我的表数据指定为在doc ready

中声明的对象
var oTable;

$(document).ready(function() {
var passData ={};

   $(document).on("click", "#example tbody tr", function(){

   var aPos = oTable.fnGetPosition(this);

   passData =  oTable.fnGetData(aPos);
   });
在点击了行

之后,

现在可以在我的其他doc ready事件声明中使用passData

   $('#someDiv').on('click', function(){
    someFunction(passData);
    });

对于您的问题,我假设每行都有一个删除按钮,我想将位置设置为变量aPos,全局到文档就绪,然后执行删除功能

var oTable;

$(document).ready(function() {
var passData ={};
var aPos;

   $(document).on("click", ".delete", function(){

   aPos = oTable.fnGetPosition(this);
   oTable.fnDeleteRow(oTable.fnGetPosition(aPos));

   return false;
   });

});

如果您遇到不知道哪个表是哪个表的问题,请将它们定义为不同的变量名称

var oTable, xTable, yTable, zTable;

然后根据需要调用函数