单击行获取数据对象

Get data object on row click

我正在使用 jquery 数据表,但在点击事件时无法获取行数据。如何在行单击事件中从我的数据表中获取我的数据对象?

我的工作:

  1. jquery post 获取 json 响应加载 json 响应作为数据到数据表(对象数组)
  2. jquery,在
  3. 注册点击事件
  4. 用户点击行时的数据表行,需要获取数据对象 单击的行

我当前的代码:

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?
  } );
}

您可以使用 row().data() 函数访问数据,将您的点击处理程序更改为:

$(contactSearchResultsTableElement + ' tbody').on('click', 'tr', function (){
   var data = dt.api().row(this).data();
});