【问题标题】:JQuery DataTable Cell from a row click从行单击 JQuery DataTable 单元格
【发布时间】:2011-03-12 06:05:02
【问题描述】:

我正在尝试在 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 列吗?

下一部分 我已经解决了上述问题,谢谢尼克

但是我有问题的下一部分。当我初始化表格时 我用

/* 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

我如何添加和获取带有 post 请求的 serlvet 响应,以便我可以更新我的表格?

【问题讨论】:

    标签: javascript jquery datatables


    【解决方案1】:

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

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

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

    【讨论】:

    • 我正在检查我的代码和您的解决方案,但我仍在尝试解决它。主要问题是,我真的可以从处理程序输入中获取参考吗?像 $("#example tbody"),并使用 this 标识符来获取单元格的引用,从而获取它的值?
    【解决方案2】:

    你可以在这里使用.delegate()最简单,像这样:

    $("#example tbody").delegate("tr", "click", function() {
      var firstCellText = $("td:first", this).text();
      var fourthCellText = $("td:eq(3)", this).text();
    });
    

    You can try out a demo here

    .delegate() this 指的是 <tr>,因为这是我们正在处理的点击,这使得事情变得更加清晰......而且它仍然只有一个 <tbody> 级别的事件处理程序,而不是每个<tr>.

    【讨论】:

    • 还有一个后续问题。如果我想将值传递到网格中来更新它,我应该怎么做才能使用 post 的功能来动态更新表格?
    • @nokheat - 你是什么意思?如果你能描述更多关于值的来源和去向的信息,我可能会提供帮助......我必须在晚上崩溃,但在这里回复,我会在早上检查:)
    • 我需要显示一些代码段,所以请参考我的新编辑
    • @nokheat - 请接受你添加的内容并用它形成一个新问题,因为这是一个完全不同的主题......最好是一个问题/答案是关于一件事,它可以帮助未来的谷歌人发现这个更好:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 2017-04-05
    相关资源
    最近更新 更多