点击行后如何获取JQuery DataTable中的单元格

14
我正在尝试在jQuery数据表格上实现一个函数,该函数返回所点击行的第一列和第四列。
我正在遵循这个示例,它允许我操作所点击的行 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列?

接下来的问题: 我已经解决了以上问题,感谢nick的帮助。

但是,接下来的问题是,在初始化表格时我使用了

/* 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响应返回给datatable。

/crvWeb/jsonFileList.do

我该如何使用post请求添加和获取servlet响应,以便更新我的表格?

2个回答

26
你可以在这里最方便地使用 .delegate(),像这样:
$("#example tbody").delegate("tr", "click", function() {
  var firstCellText = $("td:first", this).text();
  var fourthCellText = $("td:eq(3)", this).text();
});

你可以在这里尝试演示

使用.delegate()this指向被处理的点击事件所在的<tr>,使代码更加简洁...而且仍然只有一个事件处理程序在<tbody>级别上,而不是每个<tr>都有一个。


还有一个跟进的问题。如果我想将值传递到网格中进行更新,我应该如何使用 post 函数在运行时更新表格? - nokheat
@nokheat - 你是什么意思?如果你能更详细地描述一下值来自哪里,去哪里,我可能能帮忙...我得睡觉了,但请在这里回复,我会在早上检查 :) - Nick Craver
我需要展示一些代码片段,请参考我最新的编辑。 - nokheat
1
@nokheat - 请将您添加的内容提取出来,形成一个新的问题,因为那是完全不同的话题...一个问题/答案最好只涉及一个主题,这有助于未来的谷歌搜索者更好地找到答案 :) - Nick Craver

0

如果我正确地阅读了您的代码,则应该可以解决问题:

$("tr.row_selected td:nth-child(1), tr.row_selected td:nth-child(4)");

它应该返回所有带有类名为row_selected的tr元素的第一个和第四个子元素。


我正在检查我的代码和你的解决方案,但我仍然在试图解决它。主要关注点是,我真的可以从处理程序输入中取一个引用吗?比如 $("#example tbody"),然后使用 this 标识符来获取单元格的引用以及其值? - nokheat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接