0

我一直在使用 jQuery Datatables,并且在带有一个表的页面上,以下代码可以正常工作,但是在一个页面上,我使用的是选项卡,它们每个都有数据表。他们的设计设置为

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 不像集合那样工作。有什么建议么?

4

1 回答 1

0

这就是我将数据从一个数据表传递到另一个数据表的方式(我使用 jquery 1.9)我将 oTable 分配为全局 javascript 变量,然后我的表数据作为在文档中声明的对象准备就绪

var oTable;

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

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

   var aPos = oTable.fnGetPosition(this);

   passData =  oTable.fnGetData(aPos);
   });

在我单击一行后,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;

然后根据声明的需要调用函数

于 2013-06-19T13:51:21.073 回答