Відповіді:
Ви можете використовувати функцію Core / index в заданому контексті, наприклад, ви можете перевірити індекс TD в його батьківському TR, щоб отримати номер стовпця, і ви можете перевірити індекс TR в таблиці, щоб отримати номер рядка:
$('td').click(function(){
var col = $(this).parent().children().index($(this));
var row = $(this).parent().parent().children().index($(this).parent());
alert('Row: ' + row + ', Column: ' + col);
});
Перевірте приклад запуску тут .
ROWSPAN's jsbin.com/eyeyu/1099/edit#preview Клацніть на клітинку з текстом "12" . Індекс стовпців повинен бути 4
var row = $(this).closest('tr').index()
$('td').click(function() {
var myCol = $(this).index();
var $tr = $(this).closest('tr');
var myRow = $tr.index();
});
Отримайте COLUMN INDEX на клік:
$(this).closest("td").index();
Отримайте ROW INDEX при натисканні:
$(this).closest("tr").index();
Зверху в голові одним із способів було б схопити всі попередні елементи та порахувати їх.
$('td').click(function(){
var colIndex = $(this).prevAll().length;
var rowIndex = $(this).parent('tr').prevAll().length;
});
Чи можете ви виводити ці дані у клітинки під час створення таблиці?
щоб ваш стіл виглядав би так:
<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>
тоді це було б простою справою
$("td").click(function(event) {
var row = $(this).attr("data-row");
var col = $(this).attr("data-col");
}
краще прив’язати обробник кліків до всієї таблиці, а потім використовувати event.target, щоб отримати натиснуту TD. Це все, що я можу додати до цього, як його 1:20 ранку