在行单击时获取数据对象

时间:2015-04-30 17:29:05

标签: datatables jquery-datatables

我正在使用jquery数据表,但我在抓取点击事件的行数据时遇到问题。如何在行点击事件中从我的数据表中获取数据对象?

我的所作所为:

  1. jquery post获取json响应将json响应作为数据加载到datatable(对象数组)
  2. jquery,在
  3. 上注册点击事件 当用户点击行时,
  4. 数据表行,需要获取数据对象 行点击
  5. 我目前的代码:

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

1 个答案:

答案 0 :(得分:3)

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

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