Respostas:
Você pode usar a função Núcleo / índice em um determinado contexto, por exemplo, pode verificar o índice do TD no TR pai para obter o número da coluna e pode verificar o índice TR na Tabela para obter o número da linha:
$('td').click(function(){
var col = $(this).parent().children().index($(this));
var row = $(this).parent().parent().children().index($(this).parent());
alert('Row: ' + row + ', Column: ' + col);
});
Veja um exemplo em execução aqui .
ROWSPAN's
Falhou com jsbin.com/eyeyu/1099/edit#preview Clique na célula com o texto "12" . Índice de coluna deve ser 4
var row = $(this).closest('tr').index()
$('td').click(function() {
var myCol = $(this).index();
var $tr = $(this).closest('tr');
var myRow = $tr.index();
});
Obtenha COLUMN INDEX ao clicar:
$(this).closest("td").index();
Obtenha ROW INDEX ao clicar:
$(this).closest("tr").index();
Em cima da minha cabeça, uma maneira seria pegar todos os elementos anteriores e contá-los.
$('td').click(function(){
var colIndex = $(this).prevAll().length;
var rowIndex = $(this).parent('tr').prevAll().length;
});
Você pode gerar esses dados nas células enquanto cria a tabela?
para que sua tabela fique assim:
<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>
então seria uma questão simples
$("td").click(function(event) {
var row = $(this).attr("data-row");
var col = $(this).attr("data-col");
}
é melhor vincular um manipulador de cliques à tabela inteira e, em seguida, usar event.target para obter o TD clicado. Isso é tudo o que posso adicionar a isso como 1:20.