Jquery DataTable在单击时获取隐藏列值
我有一个用Ajax创建的数据表。但是,我不希望显示所有字段,因此我在不太重要的字段上将bVisible设置为falseJquery DataTable在单击时获取隐藏列值,jquery,datatables,Jquery,Datatables,我有一个用Ajax创建的数据表。但是,我不希望显示所有字段,因此我在不太重要的字段上将bVisible设置为false $(document).ready(function() { $('#example').dataTable( { "bProcessing": true, "sAjaxSource": "../DataQueries/FetchAllSubjectsForBrowse.asp",
$(document).ready(function() {
$('#example').dataTable( {
"bProcessing": true,
"sAjaxSource": "../DataQueries/FetchAllSubjectsForBrowse.asp",
"aoColumns": [
/* Subject Name */ null,
/* Address */ null,
/* LinkedWithCompany */ { "bVisible": false},
/* Work Tel */ null
]
} );
但是,我希望能够单击一行来检索所有值,包括隐藏的值。因此,我尝试了以下方法:
$('#example tbody tr').live('click', function () {
var sTitle;
var nTds = $('td', this);
var sSubjectName = $(nTds[0]).text();
var sSubjectAddress = $(nTds[1]).text();
var sLinkedWithCompany = $(nTds[2]).text();
var sWorkTel = $(nTds[3]).text();
});
然而,当我检索sLinkedWithCompany的值时,它反而给了我sWorkTel的值
对于如何检索这个隐藏的值,我有点困惑
谢谢我推荐这样的东西:
var data = [];
$.ajax({url:"../DataQueries/FetchAllSubjectsForBrowse.asp",success:function(result){
data=result;
}});
var i=0;
data.forEach(function(d) {d.index=i++;});
$('#example').dataTable( {
"bProcessing": true,
"aaData":data,
"aoColumns": [
/*index*/
/* Subject Name */ null,
/* Address */ null,
/* LinkedWithCompany */ { "bVisible": false},
/* Work Tel */ null
]
} );
然后在单击处理程序中获取索引,然后访问原始数据数组中的记录
$('#example tbody tr').live('click', function () {
var sTitle;
var nTds = $('td', this);
var index = $(nTds[0]).text();
var record = data[i];
});
这只是一个起点,但我希望你能理解 我推荐这样的东西:
var data = [];
$.ajax({url:"../DataQueries/FetchAllSubjectsForBrowse.asp",success:function(result){
data=result;
}});
var i=0;
data.forEach(function(d) {d.index=i++;});
$('#example').dataTable( {
"bProcessing": true,
"aaData":data,
"aoColumns": [
/*index*/
/* Subject Name */ null,
/* Address */ null,
/* LinkedWithCompany */ { "bVisible": false},
/* Work Tel */ null
]
} );
然后在单击处理程序中获取索引,然后访问原始数据数组中的记录
$('#example tbody tr').live('click', function () {
var sTitle;
var nTds = $('td', this);
var index = $(nTds[0]).text();
var record = data[i];
});
这只是一个起点,但我希望你能理解 在Datatables v1.10.x上,我使用了以下方法: 列定义:
"columnDefs": [
{ "data": "yourColumnId", "targets": 0, "visible": false
]
然后在我的功能中
var rows = $("#tbl").dataTable().fnGetNodes();
for (var i = 0; i < rows.length; i++) {
id = $("#tbl").dataTable().fnGetData(i).yourColumnId;
}
在Datatables v1.10.x上,我使用了以下方法: 列定义:
"columnDefs": [
{ "data": "yourColumnId", "targets": 0, "visible": false
]
然后在我的功能中
var rows = $("#tbl").dataTable().fnGetNodes();
for (var i = 0; i < rows.length; i++) {
id = $("#tbl").dataTable().fnGetData(i).yourColumnId;
}
下面是一个通过单击获取行数据的示例 假设您对表格的每一行都有删除或任何按钮,如果单击该按钮,则获取所选行的数据并执行所需操作
$(document).ready(function(){
$('#example tbody').on('click', '.delete', function(){
var row = $(this).closest('tr');
var data = $('#example').dataTable().fnGetData(row);
console.log(data);
});
});
下面是一个通过单击获取行数据的示例 假设您对表格的每一行都有删除或任何按钮,如果单击该按钮,则获取所选行的数据并执行所需操作
$(document).ready(function(){
$('#example tbody').on('click', '.delete', function(){
var row = $(this).closest('tr');
var data = $('#example').dataTable().fnGetData(row);
console.log(data);
});
});
使用以下代码获取当前tr数据(同时返回隐藏列值): 它返回一个数组,您可以访问td值,如下所示:
$('#example-table-id').on('click', 'tbody tr', function(){
var arr=$('#example-table-id').dataTable().fnGetData($(this));
var Id=arr[0]; //returns first td value
var Name=arr[1];//returns second td value
}
使用以下代码获取当前tr数据(同时返回隐藏列值): 它返回一个数组,您可以访问td值,如下所示:
$('#example-table-id').on('click', 'tbody tr', function(){
var arr=$('#example-table-id').dataTable().fnGetData($(this));
var Id=arr[0]; //returns first td value
var Name=arr[1];//returns second td value
}
console.log(nTds)并发布相关的outputconsole.log(nTds)并发布相关的outputconsole.log(nTds)但我想得到特定的行值,在这段代码中我们正在迭代表,您能帮我获得特定的行值吗?但我想得到特定的行值,在这段代码中我们正在迭代表,您能帮我获取特定的行值吗?这对我来说很好,并且完全符合您描述的用例:在嵌入表行的按钮中处理单击事件。谢谢Muhammad。对我来说效果很好,而且正是在您描述的用例中:在嵌入表行的按钮中处理单击事件。谢谢你,穆罕默德。