14

クリックされた行の1列目と4列目を返す関数をjquerydatatableに実装しようとしています

私はこの例に従っています。これにより、クリックした行を操作できます 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
            } );
        }
    } );

私のサーブレットはdirリクエストパラメータを受け取り、リストをjsonレスポンスとしてデータテーブルに返します。

/crvWeb/jsonFileList.do

テーブルを更新できるように、POSTリクエストでserlvet応答を追加して取得するにはどうすればよいですか?

4

2 に答える 2

26

.delegate()ここでは、次のように最も簡単に使用できます。

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

ここでデモを試すことができます

とは、それが私たちが処理しているクリックであるため、物事をかなりクリーンにすることを指します。それでも、レベルでのイベントハンドラーは1つだけであり、1つごとではありません。.delegate() this<tr><tbody><tr>

于 2010-07-06T11:10:09.887 に答える
0

私があなたのコードを正しく読んでいるなら、これはトリックをするはずです:

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

クラスを持つすべてのtr要素の最初と4番目の子を返す必要がありrow_selectedます。

于 2010-07-06T10:38:39.823 に答える