我如何知道单击了jQuery数据表的哪一行?

我如何知道单击了jQuery数据表的哪一行?,jquery,jquery-plugins,datatables,Jquery,Jquery Plugins,Datatables,我想使用jquerydatatables插件在表列中包含一个delete链接。我相信这很容易。我添加列没有问题,我知道实际删除表的语法,只是不知道单击的行 行是通过UI动态添加的,因此我不会在开始时呈现除标题以外的任何行。我最近这样做是为了隐藏/显示每行的额外信息。以下是我的代码片段: function fnTableRowClickHandler() { var nTr = this; var oT = $(thi

我想使用jquerydatatables插件在表列中包含一个delete链接。我相信这很容易。我添加列没有问题,我知道实际删除表的语法,只是不知道单击的行


行是通过UI动态添加的,因此我不会在开始时呈现除标题以外的任何行。

我最近这样做是为了隐藏/显示每行的额外信息。以下是我的代码片段:

        function fnTableRowClickHandler()
        {
            var nTr = this;
            var oT = $(this.parentNode.parentNode).dataTable()

            if ( $(this).hasClass('highlighted') )
            {
                /* This row is already open - close it */
                oT.fnClose( this );
                $(this).removeClass('highlighted')
            }
            else
            {
                /* Open this row, if it's classy enough */
                if ( oT.fnGetData( nTr ) == null ) return;

                $(this).addClass('highlighted')
                oT.fnOpen( nTr, fnFormatDetails(oT, nTr), 'listingDetails opened' );
            }

        }
我必须在else中添加针对null的检查,因为如果单击了附加信息,它将向扩展行中的每个项目添加一个简短的空扩展名

稍后将处理程序添加到表中:

 $("#TableId tbody tr").live( 'click', fnTableRowClickHandler )

在创建时为每行动态分配一个唯一的id,并使每行的单击事件删除具有该id的元素另一个示例

$("#TableID tbody").delegate("tr", "click", function() {
    var iPos = oTable.fnGetPosition( this );//oTable is the table object itself
    if(iPos!=null){
        //couple of example on what can be done with the clicked row...
        var aData = oTable.fnGetData( iPos );//get data of the clicked row
        var iId = aData[1];//get column data of the row
        oTable.fnDeleteRow(iPos);//delete row

    }
}))