Frage

Ich versuche, eine Funktion auf jquery Datentabelle zu implementieren, dass die Renditen der 1. und die 4. Spalte einer klickten Zeile

Ich verfolge dieses Beispiel, das mir eine geklickt Reihe zu manipulieren http://datatables.net/examples/api/select_single_row.html

Denken, dass ich diese Prozedur ändern können die gelesenen Zellenwert Verfahren zu tun und den Wert auf meine eigene Logik verwenden

/* 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');
});

Ich habe auch mit diesem kleinen Code-Segment von Datatable Forum über 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() );
} );

kann ich irgendwelche Zeiger, so dass ich die ersten bekommen und vierte Spalte des klickten Feld?

nächster Teil Ich habe die oben gelöst, dank nick

Allerdings habe ich den nächsten Teil des Problems. wenn i init den Tisch Ich benutze

/* 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
            } );
        }
    } );

mein Servlet nimmt dir Anforderungsparameter und kehrt in die Datentabelle als Json Antwort eine Auflistung.

/crvWeb/jsonFileList.do

Wie kann ich serlvet Antwort mit Post-Anforderung hinzufügen und so kann ich meine Tabelle aktualisiert haben kann?

War es hilfreich?

Lösung

Sie können mit .delegate() am einfachsten hier, wie diese:

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

Sie können hier eine Demo ausprobieren

Mit .delegate() this bezieht sich auf die <tr> da, dass der Klick ist, wir sind Handhabung, die Dinge ganz ein bisschen cleaner..and es am <tbody> Ebene nach wie vor nur ein Event-Handler ist, nicht ein pro <tr>.

Andere Tipps

Das sollte es tun, wenn ich den Code gerade lese richtig:

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

Es sollte das erste und vierte Kind aller tr Elemente mit der Klasse row_selected zurück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top