datatables - 如何获取第一列值

时间:2014-07-16 03:56:24

标签: datatables jquery-datatables

我在每行的末尾都有一个删除按钮
表中的第一列是隐藏的(服务器行id),
如何获得给定TR对象的第一列值?

$('#example').on('click', 'a.editor_remove', function (e) {
     e.preventDefault();
     var oTableApi = $('#example').dataTable().api();
     var tr = $(this).closest('tr');
     alert(tr.first('td').text()); // return all the columns as one text.
});

2 个答案:

答案 0 :(得分:2)

我敢于回答你正在使用数据表< v1.10.x.它也适用于1.10.x,但后来我推荐另一种方法。它实际上比你想象的容易得多。

如果你有这样的行:

<tr>
    <td>1</td> <!-- server row id -->
    <td>content #1</td>
    <td><input type="button" class="delete" value="delete"/></td>
</tr>

并初始化数据表:

var dataTable = $('#example').dataTable({});

并隐藏了第一列:

dataTable.fnSetColumnVis(0, false);

然后,当你点击按钮时,你需要做的就是得到第一列的值:

$('.delete').click(function(e) {
   var tr = $(this).closest('tr');    
   //get the real row index, even if the table is sorted 
   var index = dataTable.fnGetPosition(tr[0]);
   //alert the content of the hidden first column 
   alert(dataTable.fnGetData(index)[0]);
});

参见演示 - &gt;的 http://jsfiddle.net/avPSL/

答案 1 :(得分:1)

davidkonrad解决方案效果很好, 我发现这个jquery td:第一个技巧也是如此,以防万一:

        var oTableApi = $('#example').dataTable().api();
        var tr = $(this).closest('tr');
        td = tr.find("td:first")
        var cell = oTableApi.cell(td);
        alert(cell.data());