JQuery Datatables AJAX源的行数据

JQuery Datatables Row Data From AJAX Source

本文关键字:数据 Datatables AJAX JQuery      更新时间:2023-09-26

过去我总是用它来获取隐藏列的数据。我会用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 = (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();