我正在使用DataTables来显示消息列表。
我需要一种基于id传递给查询字符串上的页面来获取特定数据行的方法。
离。 www.webpage.com?id=2
我已经在jQuery变量中拥有了id。 现在我只需要访问与该id相关联的DataTable行。
基本上,我需要引用该行,而不是点击它。
有什么建议吗?
答案 0 :(得分:8)
一种方法是使用fnGetPosition
和fnGetData
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
接受行节点或整数,因此您也可以将行索引作为参数传递。
答案 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的行。