JQuery Datatable-Zelle aus einer Reihe Klick
-
02-10-2019 - |
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?
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.