Réponses:
Vous pouvez utiliser la fonction Core / index dans un contexte donné, par exemple vous pouvez vérifier l'index du TD dans son parent TR pour obtenir le numéro de colonne, et vous pouvez vérifier l'index TR sur la table, pour obtenir le numéro de ligne:
$('td').click(function(){
var col = $(this).parent().children().index($(this));
var row = $(this).parent().parent().children().index($(this).parent());
alert('Row: ' + row + ', Column: ' + col);
});
Consultez un exemple en cours ici .
ROWSPAN's
jsbin.com/eyeyu/1099/edit#preview Cliquez sur la cellule avec le texte "12" . L'index de la colonne doit être 4
var row = $(this).closest('tr').index()
$('td').click(function() {
var myCol = $(this).index();
var $tr = $(this).closest('tr');
var myRow = $tr.index();
});
Obtenez l'INDICE DE COLONNE en cliquant sur:
$(this).closest("td").index();
Obtenez ROW INDEX en cliquant sur:
$(this).closest("tr").index();
Du haut de ma tête, une façon serait de saisir tous les éléments précédents et de les compter.
$('td').click(function(){
var colIndex = $(this).prevAll().length;
var rowIndex = $(this).parent('tr').prevAll().length;
});
Pouvez-vous sortir ces données dans les cellules lorsque vous créez le tableau?
ainsi votre table ressemblerait à ceci:
<table>
<thead>...</thead>
<tbody>
<tr><td data-row='1' data-column='1'>value</td>
<td data-row='1' data-column='2'>value</td>
<td data-row='1' data-column='3'>value</td></tr>
<tbody>
</table>
alors ce serait une question simple
$("td").click(function(event) {
var row = $(this).attr("data-row");
var col = $(this).attr("data-col");
}
il est préférable de lier un gestionnaire de clics à la table entière, puis d'utiliser event.target pour obtenir le TD cliqué. C'est tout ce que je peux ajouter à cela car il est 1h20 du matin