2

我可以通过以下简单方法访问数据行:

$('#received-body tr').click( function(){
    aData = received_table.fnGetData(this);
    selected_received_id = aData[0];
    alert( selected_received_id );
});

但我无法从.received-update其中一行中调用的按钮访问它们:

$('#received-body .received-update').click( function(){
    alert( 'update' ); // works
    aData = received_table.fnGetData( $(this).parents('tr')); // fails
    selected_received_id = aData[0];
    alert( 'update:' + selected_received_id );                      
});

任何帮助表示赞赏

4

4 回答 4

4

您可以通过更换来解决您的问题

    aData = received_table.fnGetData($(this).parents('tr'));

    aData = received_table.fnGetData($(this).parents('tr')[0]);


调用也需要相同的语法received_table.fnGetPosition()

于 2013-12-16T16:47:04.967 回答
1

下面的代码将有所帮助,

var table = $('#tableID').DataTable();
var row_data;
$('#tableID tbody').on( 'click', 'button', function () {
    row_data = table.row( $(this).parents('tr') ).data();
    console.log(row_data); // you will get the row data
});
于 2017-07-10T10:16:23.133 回答
0

您可能需要使用最接近的,因为parents()可能会给出多于一行。虽然最接近,但首先匹配 DOM 层次结构。

aData = recieved_table.fnGetData($(this).closest('tr')); // fails
于 2013-03-15T16:41:21.157 回答
0
aData = recieved_table.fnGetData($(this).parent('tr')); 

尝试.parent()代替,.parents()因为.parents()获取当前匹配元素集中每个元素的父级。.parent()仅当 tr 是 tr 的直接子级时才有效。在那种情况下.closest()将是理想的,如下所示。

aData = recieved_table.fnGetData($(this).closest('tr'));

如果上述方法不适合您,请尝试使用filter方法来减少匹配元素的集合。

于 2013-03-15T16:42:46.273 回答