如果我有这样的表:
<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与每个或地图,是否有更简单的我可以使用?感谢。
答案 0 :(得分:29)
首先获取<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;