【问题标题】:Get data object on row click点击行获取数据对象
【发布时间】:2015-04-30 17:29:05
【问题描述】:

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

我做什么:

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

我当前的代码:

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

【问题讨论】:

    标签: datatables jquery-datatables


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我试试这个。我之前的尝试缺少'.api()'。没有意识到这是必要的。
    • 从数据表更新的 api 不再需要 api()。我用过:dt.row(this).data();
    • @SpoiledTechie.com,如果您使用dataTable()将表格初始化为原始海报,则为必填项。否则如果使用DataTable()进行初始化,则不需要。
    • @Gyrocode.com 您的对象 dt 表示该表已经初始化。 :) 因此,如果它已经初始化,则不需要 dataTable() 方法。没什么大不了的。只是让其他人知道我做了什么。
    猜你喜欢
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 2015-01-29
    相关资源
    最近更新 更多