4

我正在使用 DataTables 来显示消息列表。

我需要一种方法来根据传递到查询字符串上的页面的 id 获取特定的数据行。

前任。www.webpage.com?id=2

我已经在 jQuery 变量中有 id。现在我只需要访问与该 id 关联的 DataTable 行。

基本上,我需要引用该行,而无需单击它。

有什么建议么?

4

4 回答 4

8

一种方法是使用fnGetPositionfnGetData

var rowIndex = table.fnGetPosition( $("some selector").closest('tr')[0] );
//some selector = should select some hidden element inside a row that 
//contains the relevant id
var aData = table.fnGetData( rowIndex  );
alert(aData[0]);// will show first column data

这是一个外部按钮的工作jsfiddle 示例,它选择具有特定 ID 的行

另一个在页面加载时选择具有特定 ID 的行的示例(就绪)jsfiddle 示例 N#2

看看函数

$("#wow").click(function() {

    var rowIndex = table.fnGetPosition($("#example input[value=\'TridentVal\']").closest('tr')[0]);
    alert(rowIndex);
    var aData = table.fnGetData(rowIndex);
    alert(aData[0]); // will show first column data
});​

这是选择具有相关数据的输入的方法...:

$("#example input[value=\'TridentVal\']")

example是表 id ,将TridentVal替换为所需的 ID

于 2012-12-11T19:02:03.420 回答
3

首先,您必须使用 jQuery 获取表格行。

var $rowNode = $('#myTable').find('tbody tr:eq(0)').get(0);

然后你fnGetData用来获取行数据。

var data = table.fnGetData($rowNode);

fnGetData接受行节点或整数,因此您也可以将行索引作为参数传递。

演示

于 2012-12-11T19:02:54.950 回答
1

如果您使用 TableTools 扩展,那么您可以使用 fnSelect()。从文档

$(document).ready( function () {
    $('#example1').dataTable( {
        "sDom": 'T<"clear">lfrtip',
        "oTableTools": {
            "sRowSelect": "single"
        }
    } );

    // Select the first row in the table automatically
    var oTT = TableTools.fnGetInstance( 'example1' );
    oTT.fnSelect( $('#example tbody tr')[0] );
});

您当然希望修改选择器,以便它选择具有您的 ID 的行。

于 2012-12-11T19:43:10.350 回答
0

fnGetData 现在已过时。这记录了当前版本 https://datatables.net/reference/api/cell().data()中的 cell().data() 访问模式

于 2016-04-10T14:42:06.273 回答