Javascript: получение индекса td

Возможный дубликат:
Таблица и номер столбца в jQuery

Если у меня есть таблица вроде этого:

<table>
  <thead>
     <tr><th>1</th> <th>2</th> <th>3</th></tr>
  </thead>

  <tbody>
    <tr><td>data</td> <td>checkbox</td> <td>data</td></tr>
  </tbody>
</table>

Когда пользователь нажимает этот флажок, я хочу получить индексы строк и столбцов. Я могу получить индекс строки, используя этот код:

 var row = $(this).parent().parent();
 var rowIndex = $(row[0].rowIndex);

но я не могу определить индекс столбца...

Я пробовал это, но это не сработало:

 var colIndex = $(row.children().index(this).parent());

Я просмотрел результаты подобных вопросов здесь, и мне кажется, что я должен перебирать все tds с каждой или картой, есть ли что-то более простое, что я могу использовать? Спасибо.

Ответ 1

Сначала введите индекс <td>, так как он находится на пути к <tr>:

var cell = $(this).closest('td');
var cellIndex = cell[0].cellIndex

var row = cell.closest('tr');
var rowIndex = row[0].rowIndex;

Или используя метод parents() [docs] вместе с multiple-selector [docs], вы можете сделать выбор для обоих сразу:

var cellAndRow = $(this).parents('td,tr');

var cellIndex = cellAndRow[0].cellIndex
var rowIndex = cellAndRow[1].rowIndex;