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;