2015-04-08 3 views
1

Я пытаюсь использовать datatables jQuery plugin, но у меня проблемы, и я не могу понять, почему это происходит.JQuery - table.row (tr) не определено

я получил колонку действий на моем столе:

table = $('#' + tableId).DataTable({ 
    processing: true, 
    serverSide: true, 
    ajax: dataUrl, 
    deferRender: true, 
    esponsive: true, 
    pageLength: 15, 
    pagingType: "full_numbers", 
    stateSave: true, 
    filter: true, 
    language: { 
     paginate: { 
      next: " ", 
      previous: " ", 
      first: "First", 
      last: "Last" 
     } 
    } 

$(document).on('click', ".details-control2", function() { 
    var tr = $(this).parent().parent(); // <-- finds the correct tr 
    var row = table.row(tr); 
    console.log(row); // <-- undefined, why??? 'table' is recognized correctly 
} 

Update - HTML таблицы:

<tbody> 
<tr id="row_0" role="row" class="odd"> 
    <td class="sorting_1"></td> 
    <td><input type="image" src="/images/plus.png" class="details-control2"> </td> 
    <td>rasplap.dll</td> 
    <td></td> 
    <td>WIN7X86</td> 
    <td>DLL</td> 
    <td>4/4/2015 3:45:45 PM</td> 
    <td>4/4/2015 5:38:32 PM</td> 
    <td>0</td> 
</tr> 
</tbody> 

Любые предложения? Скажите, пожалуйста, если какая-либо информация отсутствует.

+0

обеспечивают 'html' для таблицы, Вы используете' dataTables'? –

+5

Что такое 'table'? Есть ли метод 'row()'? Если ваш код не использует некоторые плагины, о которых вы не упоминали, у вас есть некоторые проблемы с синтаксисом –

+0

@Rory McCrossan, посмотрите мое обновление, я использую jquery datatable – user3770158

ответ

0

попробовать

$(this).parentNode.parentNode; 
0

Это обсуждается в DataTable форуме: http://datatables.net/forums/discussion/11836/getting-data-on-click

Я надеюсь, что это помогает:

$(document).on('click', ".details-control2", function() { 

    var row = $(this).closest('tr'), 
     data = table._(row), 
     id = data[0].id; 

    //do something with your id 
    //Get the position of the current data from the node 
    var aPos = table.fnGetPosition(id);//you many need to use ('#' + id) 

    // Get the data array for this row 
    var aData = table.fnGetData(id[0]);//you many need to use ('#' + id[0]) 
}); 
+0

Это не работает. см. здесь: https://datatables.net/examples/api/row_details.html – user3770158

+0

Я думаю, что у них есть это использование: 'var data = table.row (0) .data();' в их api: https: //datatables.net/reference/api/row(). data(), я проверяю до того, как я опубликовал – renakre

+0

, не работает мой друг – user3770158

Смежные вопросы