Datatables 数据表-传递变量

Datatables 数据表-传递变量,datatables,Datatables,我有一个datatables网站,其中有客户订单信息——客户名称、到期日期、客户订单号等。其中一列是我所在组织的工作编号。当我双击所需行中的job number列时,会显示另一个页面-approval.php。我遇到的问题是将信息从双击的行传递到新页面 这是我的密码: var oTable oTable = $('#runsheet').dataTable({ "sDom": '<"clear"><"H"lfrC>t<"F"i>', "bPro

我有一个datatables网站,其中有客户订单信息——客户名称、到期日期、客户订单号等。其中一列是我所在组织的工作编号。当我双击所需行中的job number列时,会显示另一个页面-approval.php。我遇到的问题是将信息从双击的行传递到新页面

这是我的密码:

var oTable
oTable = $('#runsheet').dataTable({
    "sDom": '<"clear"><"H"lfrC>t<"F"i>',
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "modules/runsheet/runsheet_objects.php",
    "bJQueryUI": true,
    "aoColumns": [
        { "mDataProp": "Job_No", "sClass": "clicknumber center", "sWidth": "50px" },
.....
当我将此代码更改为

    $(".clicknumber").live('dblclick',function(event){
    event.preventDefault();
    var nTr = this.parentNode.parentNode;
    var aData = oTable.fnGetData( nTr );
    window.location = 'approval.php?customer='+ aData.Customer + 'job_no =' + aData.Job_no;
})
我知道火虫中的aData为空

在其他地方,aData正在工作,因为此代码在向下钻取行中正确显示了作业编号:

function fnFormatDetails ( nTr ) {
var aData = oTable.fnGetData( nTr );
var sOut = '<div class="innerDetails">';
sOut += '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">';
sOut += '<tr><td>Job No:</td><td>'+aData.Job_No+'</td></tr>';
sOut += '</table>';
sOut += '</div>';           
return sOut; }
函数fnFormatDetails(nTr){
var aData=oTable.fGetData(nTr);
var sOut='';
sOut+='';
sOut+=“作业编号:”+数据。作业编号+”;
sOut+='';
sOut+='';
返回sOut;}
有人能帮我修复$(“.clicknumber”).live('dblclick',函数(事件)代码吗


非常感谢,Bandan88解决了这个问题。我用了这个:
var nTr=this.parentnode.


得益于,Bandan88 DataTables v 1.10.8+具有用于检索行id的内置功能

如果将类指定给行:

<tr class="clickable" id="1">

这是一个。

你能发布
oTable.fngedata
方法的代码吗?看起来这可能是罪魁祸首。另外,当你说
aData
为“null”时感谢musicfreak,我正在使用datatables 1.8.2,fnGetData在js文件第1896行中列出。这是下一条消息。至于null,Firebug声明为“null”,而不是未定义。this.fnGetData=函数(mRow,iCol){var oSettings=\u FNSettings fromNode(this[\u oText.iApiIndex])if(typeof mRow!=“undefined”){var iRow=(typeof mRow==“object”)?\u fnNodeToDataIndex(oSettings,mRow):mRow;if(typeof iCol!=“undefined”){return{fnGetCellData(oSettings,iRow,iCol');}return(typeof oSettings.aoData[iRow]!='undefined')?oSettings.aoData[iRow]。_aData:null;}返回_fGetDatamaster(oSettings);};如果您将
nTr
记录到控制台,它是否会显示您想要的节点?DataTables API中的fnGetData函数不太可能是罪魁祸首。您是否试图在范围外访问oTable?(var oTable是全局的,还是在另一个函数或对象中?)格雷格,我认为你的思路是对的。添加console.log(“row”,nTr);在Firebug中的“window.location”行之前。将同一个console.log行放在fnFormatDetails的末尾会返回Firebug。我确信oTable没有超出范围。为了测试,我将它移到脚本的第一行,然后再执行任何函数。它没有任何影响。现在,我们似乎正在缩小范围,我仍然不知道如何处理它谢谢你,谢谢
<tr class="clickable" id="1">
var dt = $('table').DataTable();

$('.clickable').on('click', function() {
  var id = dt.row(this).id();
  console.log('You clicked on rowId ' + id);
});