簡體   English   中英

來自AJAX源的JQuery數據表行數據

[英]JQuery Datatables Row Data From AJAX Source

過去,我一直使用它來獲取隱藏列的數據。 我會使用CSS類隱藏該列,但響應功能不適用於這些類。

var td = $('td', this);
var ID = $(td[0]).text();

因此,我找到了一種替代方法,即使用響應功能將這些類的列隱藏起來。

"columnDefs": [
    //Responsive classes
    { className: 'never', targets: 0 }, //Hide on all devices
    { className: 'all', targets: 1 },   //Show on all devices
]

然后我使用其中之一。

var rowData = oTable1.fnGetData(this);
var rowData = oTable1.api().row(this).data();

//Grab the first indexed item in the list
var ID = rowData[0];

如果您沒有AJAX來源,則效​​果很好。 它將返回用逗號分隔的行數據列表。 但是,當我嘗試將其與AJAX源一起使用時,如果我在警報中輸出rowData變量,則只會得到[object Object](而不是逗號分隔的列表)。

如何使用AJAX源從表中獲取行數據?

它似乎存儲為字符串,所以當您將其變成字符串時,[1、2、3]成為[object Object]。 執行yourString = yourList.join(',')並存儲yourString以保持逗號分隔的字符串。

對於對象:

yourString = (function () {
  var list = [];
  for(var i in yourList)
    if(yourList.hasOwnProperty(i))
      list.push(yourList[i]);
  return list.join(',');
})();

該函數不是必需的,僅用於限制變量范圍。

我最終使用了在這里找到的答案。 將JS對象轉換為數組

我可以以此從表中提取整個行數據。

 var rowData = oTable1.api().row(this).data();

在控制台日志中,我可以看到它返回了這樣的javascript對象。

 Object { id="123456", full_name="Samuel Smith", Last_name="Smith" }

我使用此函數將對象轉換為數組。

var array = $.map(rowData, function (value, index) {
        return [value];
    });

在控制台日志中,我的陣列將如下所示。

["123456", "Samuel Smith", "Smith"]

然后,我可以像這樣從數組中提取任何項目。

alert(array[0]);

簡化madvora的示例:

var rowData = oTable1.api().row(this).data().to$();
rowDataArray = rowData.toArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM