数据表获取行数据而不单击它

时间:2012-12-11 18:49:37

标签: jquery datatables

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

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

离。 www.webpage.com?id=2

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

基本上,我需要引用该行,而不是点击它。

有什么建议吗?

3 个答案:

答案 0 :(得分: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 example 的外部按钮,用于选择具有特定ID的行

在页面加载时选择具有特定ID的行的另一个示例(就绪) jsfiddle example 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

答案 1 :(得分:2)

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

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

然后使用fnGetData获取行数据。

var data = table.fnGetData($rowNode);

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

demo

答案 2 :(得分:1)

如果使用TableTools扩展,则可以使用fnSelect()。来自docs

$(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的行。