Datatables 获取行上的数据对象单击
我正在使用jquery datatables,在单击事件时获取行数据时遇到问题。如何在单击行事件时从数据表中获取数据对象 我所做的:Datatables 获取行上的数据对象单击,datatables,jquery-datatables,Datatables,Jquery Datatables,我正在使用jquery datatables,在单击事件时获取行数据时遇到问题。如何在单击行事件时从数据表中获取数据对象 我所做的: jquery post获取json响应将json响应作为数据加载到datatable(对象数组)中 jquery,注册单击事件 datatable行当用户单击行时,需要获取 单击行 我当前的代码: function contactSearchListTable(data) { // data is array of javascript object co
function contactSearchListTable(data) {
// data is array of javascript object
console.log('contactSearchListTable()');
$(contactSearchResultsTableElement + ' tbody').off();
if ( $.fn.dataTable.isDataTable(contactSearchResultsTableElement) ) {
$(contactSearchResultsTableElement).DataTable().destroy();
}
if (data.length == 0) {
$(contactSearchResultsTableElement).html('');
}
var table = $(contactSearchResultsTableElement);
var params = {"data":data
,"info": false
,"searching": false
,"ordering": false
,"lengthChange": false
,"columns":[
{"data":"id","visible":false}
,{"data":"name","title":"Name","class":"clickable"}
,{"data":"phoneHome","title":"Home","class":"clickable"}
,{"data":"phoneWork","title":"Work","class":"clickable"}
]
};
var dt = table.dataTable(params);
$(contactSearchResultsTableElement + ' tbody').on('click', 'tr', function () {
console.log(this); // <tr> html from datatable
// **** need to get hidden ID value here, HOW?
} );
}
函数contactSearchListTable(数据){
//数据是javascript对象的数组
log('contactSearchListTable()');
$(contactSearchResultsTableElement+'tbody').off();
if($.fn.dataTable.isDataTable(contactSearchResultsTableElement)){
$(contactSearchResultsTableElement).DataTable().destroy();
}
如果(data.length==0){
$(contactSearchResultsTableElement).html(“”);
}
变量表=$(contactSearchResultsTableElement);
变量参数={“数据”:数据
,“信息”:错误
,“搜索”:false
,“排序”:false
,“长度变化”:false
,“列”:[
{“数据”:“id”,“可见”:false}
,{“数据”:“名称”、“标题”:“名称”、“类别”:“可点击”}
,{“数据”:“电话主页”,“标题”:“主页”,“类别”:“可点击”}
,{“数据”:“电话工作”,“标题”:“工作”,“类别”:“可点击”}
]
};
var dt=表。数据表(参数);
$(contactSearchResultsTableElement+'tbody')。在('click','tr',函数(){
console.log(this);//来自datatable的html
//****此处需要获取隐藏的ID值,如何获取?
} );
}
您可以使用函数访问数据,将单击处理程序更改为:
$(contactSearchResultsTableElement + ' tbody').on('click', 'tr', function (){
var data = dt.api().row(this).data();
});
谢谢,我试试这个。我以前的尝试缺少“.api()”。未意识到这是必需的。从datatables更新的api不再需要api()。我使用了:dt.row(this.data()@如果您使用
dataTable()
将表格初始化为原始海报,则需要该表格。否则,如果使用DataTable()
进行初始化,则不需要。@Gyrocode.com您的对象dt表示该表已初始化。:)因此,如果它已经初始化,则不需要dataTable()方法。没什么大不了的。只是让其他人知道我做了什么。