我正在尝试在jquery datatable上实现一个函数,它返回一个单击行的第一列和第四列
我正在关注这个例子,它允许我操纵一个被点击的行 http://datatables.net/examples/api/select_single_row.html
认为我可以更改此处理程序以执行读取单元格值过程并在我自己的逻辑上使用该值
/* Add a click handler to the rows - this could be used as a callback */
$("#example tbody").click(function(event) {
$(oTable.fnSettings().aoData).each(function (){
$(this.nTr).removeClass('row_selected');
});
$(event.target.parentNode).addClass('row_selected');
});
我还从dataTable论坛http://datatables.net/forums/comments.php?DiscussionID=1384&page=1#Item_0
获得了这个小代码段$('#example tbody tr').click( function () {
// Alert the contents of an element in a SPAN in the first TD
alert( $('td:eq(0) span', this).html() );
} );
我可以有任何指针,这样我就可以得到点击字段的第1和第4列吗?
下一部分 我已经解决了上述问题,感谢尼克
然而,我有下一部分问题。当我开始表 我用
/* Init the table */
oTable = $('#filetable').dataTable( {
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "/crvWeb/jsonFileList.do",
"fnServerData": function ( sSource, aoData, fnCallback ) {
$.ajax( {
"dataType": 'json',
"type": "POST",
"url": sSource,
"data": aoData,
"success": fnCallback
} );
}
} );
我的servlet接受一个dir请求参数,并将一个列表作为json响应返回给数据表。
/crvWeb/jsonFileList.do
如何通过发布请求添加并获取serlvet响应,以便我可以更新我的表格?
答案 0 :(得分:25)
您可以在这里使用最简单的.delegate()
,如下所示:
$("#example tbody").delegate("tr", "click", function() {
var firstCellText = $("td:first", this).text();
var fourthCellText = $("td:eq(3)", this).text();
});
使用.delegate()
this
引用<tr>
,因为这是我们正在处理的点击,使事情变得更加清晰......而且它仍然只是{{1}处的一个事件处理程序1}}级别,而不是每<tbody>
个。
答案 1 :(得分:0)
如果我正确地阅读你的代码,这应该可以解决问题:
$("tr.row_selected td:nth-child(1), tr.row_selected td:nth-child(4)");
它应该使用类row_selected
返回所有tr元素的第一个和第四个子元素。