Номер строки таблицы и столбца в jQuery

Как получить номер строки и столбца ячейки с нажатой ячейкой, используя jQuery, т.е.

$("td").onClick(function(event){
   var row = ...
   var col = ...
});

Ответ 1

Вы можете использовать функцию 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);
});

Проверьте приведенный ниже пример .

Ответ 2

$('td').click(function() {
    var myCol = $(this).index();
    var $tr = $(this).closest('tr');
    var myRow = $tr.index();
});

Ответ 3

Получите КОЛИЧЕСТВЕННЫЙ ИНДЕКС при нажатии:

$(this).closest("td").index();

Получить ROW INDEX при нажатии:

$(this).closest("tr").index();

Ответ 4

Сверху моей головы один способ - захватить все предыдущие элементы и посчитать их.

$('td').click(function(){ 
    var colIndex = $(this).prevAll().length;
    var rowIndex = $(this).parent('tr').prevAll().length;
});

Ответ 5

Можете ли вы выводить эти данные в ячейках при создании таблицы?

поэтому ваш стол будет выглядеть так:

<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");
}

Ответ 6

лучше привязать обработчик кликов ко всей таблице, а затем использовать event.target, чтобы получить нажатый TD. Thats все, что я могу добавить к этому как его 1:20 утра