user3720435
user3720435

Reputation: 1476

Get data object on row click

I am using jquery datatables and I am having trouble grabbing the row data on click event. How can I get my data object from my datatable on row click event?

What I do:

  1. jquery post to get a json response load json response as data into datatable (array of objects)
  2. jquery, register click event on
  3. datatable rows when user clicks on row, need to get data object for row clicked on

My current code:

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

Upvotes: 2

Views: 2082

Answers (1)

Gyrocode.com
Gyrocode.com

Reputation: 58930

You can access the data using row().data() function, change you click handler to:

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

Upvotes: 3

Related Questions