我在每行的末尾都有一个删除按钮
表中的第一列是隐藏的(服务器行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.
});
答案 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());