JQuery 数据表行数据来自 AJAX 来源
JQuery Datatables Row Data From AJAX Source
以前我总是用它来获取隐藏列的数据。我会用 css class 隐藏该列,但响应功能不适用于这些。
var td = $('td', this);
var ID = $(td[0]).text();
所以我找到了一个替代方案,通过使用响应功能隐藏这些 classes 的列。
"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 来源,那效果很好。它将 return 行数据的逗号分隔列表。但是,当我尝试将它与 AJAX 源一起使用时,如果我在警报中输出 rowData 变量,我只会返回 [object Object] (而不是逗号分隔列表)。
如何从具有 AJAX 源的 table 中获取行数据?
它似乎是作为字符串存储的,所以当你把它变成字符串时,[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(',');
})();
这个函数不需要,只是限制变量作用域而已
我最终使用了在这里找到的答案。
Converting a JS object to an array
我可以用这个从 table 中提取整行数据。
var rowData = oTable1.api().row(this).data();
在控制台日志中我可以看到它 returns 一个像这样的 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();
以前我总是用它来获取隐藏列的数据。我会用 css class 隐藏该列,但响应功能不适用于这些。
var td = $('td', this);
var ID = $(td[0]).text();
所以我找到了一个替代方案,通过使用响应功能隐藏这些 classes 的列。
"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 来源,那效果很好。它将 return 行数据的逗号分隔列表。但是,当我尝试将它与 AJAX 源一起使用时,如果我在警报中输出 rowData 变量,我只会返回 [object Object] (而不是逗号分隔列表)。
如何从具有 AJAX 源的 table 中获取行数据?
它似乎是作为字符串存储的,所以当你把它变成字符串时,[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(',');
})();
这个函数不需要,只是限制变量作用域而已
我最终使用了在这里找到的答案。 Converting a JS object to an array
我可以用这个从 table 中提取整行数据。
var rowData = oTable1.api().row(this).data();
在控制台日志中我可以看到它 returns 一个像这样的 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();