2016-03-04 35 views
0

我正在使用jQuery DataTables插件。我試圖給我的表分配一個參數,稍後在自定義搜索中使用該參數。然而,我不知道如何存儲和獲取該參數,並且在我的自定義搜索中,我不知道如何獲取表格對象。這裏是我的代碼給的什麼,我試圖做一個更加清晰的思路:將自定義變量添加到jquery數據表中並在搜索過濾器中讀入

jQuery.fn.dataTable.ext.search.push(
    function(settings, data, dataIndex) { 
     var myParam = ....; 
     console.log('i said: '+ myParam) 
     return true; 
    } 
); 

var table = jQuery('#myTable').DataTable(); 
table.myParam = 'hello'; 
table.draw(); 

回答

2
  • 使用全局變量:

    var myParam = ''; 
    
    jQuery.fn.dataTable.ext.search.push(
        function(settings, data, dataIndex) { 
         console.log('i said: '+ myParam) 
         return true; 
        } 
    ); 
    
    var table = jQuery('#myTable').DataTable(); 
    myParam = 'hello'; 
    table.draw(); 
    
  • 使用data-屬性:

    jQuery.fn.dataTable.ext.search.push(
        function(settings, data, dataIndex) { 
         var table = new jQuery.fn.dataTable.Api(settings); 
         var myParam = jQuery(table.table().node()).data('myParam'); 
    
         console.log('i said: '+ myParam) 
         return true; 
        } 
    ); 
    
    var table = jQuery('#myTable').DataTable(); 
    jQuery(table.table().node()).data('myParam', 'hello'); 
    table.draw(); 
    
+0

感謝您的回答。數據()似乎是一個好主意,但它意味着每行檢查一個新的對象將被創建。你知道這是否會對性能產生影響,以及如何解決這個問題?我試圖避免全局性。 – user4493177

+0

@ user4493177,很顯然,使用'data-'屬性方法有幾個額外的函數將在循環中調用。我不確定這將如何影響性能,這取決於表的大小。 –