2013-06-19 96 views
0

我一直在使用jQuery Datatables和頁面上的一張桌子下面的代碼工作,因爲它應該,但在一個頁面上我使用的標籤,他們每個人都有數據表。他們的設計是建立與如何從多個數據表中刪除特定數據表中的行?

var oTable = $('.dataTable').dataTable({....}) 

我的問題是,當我去嘗試比第一個以外的表刪除行。每一行與類的鏈接=刪除,所以我有這樣的

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

一個javascript當我嘗試從第二個表中刪除一行例如,它檢索行=像2並刪除相應的行第一張桌子。

我很難想出一種方法來識別確切的oTable。我想分配給每個數據表中的數字ID,並在點擊功能和ID檢索它的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並不像採集工作。有什麼建議麼?

回答

0

這是我如何從一個數據表中的數據傳遞到 另一個(使用jquery 1.9 IM)我分配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; 

調用的函數需要由自己聲明

+0

我試過這個,但得到了Uncaught TypeError:不能調用未定義的方法'toUpperCase'爲aPos –

+0

如果我做了你的建議的第二部分,那麼我會有噸的重複行來設置dataTable設置,如var oTabl e = $('。dataTable1')。dataTable({... 20 lines ...})var xTable = $('。dataTable2')。dataTable({... 20 lines ...}) –

+0

Ok I讓你知道,繼承人的事情,我假設每個標籤再次定義對象oTable,對嗎?點擊數據加載?如果是這樣的話,你會不斷重新定義oTable是什麼?從我猜測,每個標籤有不同的數據集,爲什麼不應該有自己的聲明? –