Câu trả lời:
Bạn có thể sử dụng hàm Core / index trong ngữ cảnh cụ thể, ví dụ: bạn có thể kiểm tra chỉ mục của TD trong TR cha của nó để lấy số cột và bạn có thể kiểm tra chỉ số TR trên Bảng, để lấy số hàng:
$('td').click(function(){
var col = $(this).parent().children().index($(this));
var row = $(this).parent().parent().children().index($(this).parent());
alert('Row: ' + row + ', Column: ' + col);
});
Kiểm tra một ví dụ đang chạy ở đây .
ROWSPAN's
jsbin.com/eyeyu/1099/edit#preview Nhấp vào ô có văn bản "12" . Chỉ số cột phải là 4
var row = $(this).closest('tr').index()
$('td').click(function() {
var myCol = $(this).index();
var $tr = $(this).closest('tr');
var myRow = $tr.index();
});
Nhận INDUM INDEX khi nhấp:
$(this).closest("td").index();
Nhận ROW INDEX khi nhấp:
$(this).closest("tr").index();
Ra khỏi đỉnh đầu của tôi, một cách sẽ là lấy tất cả các yếu tố trước đó và đếm chúng.
$('td').click(function(){
var colIndex = $(this).prevAll().length;
var rowIndex = $(this).parent('tr').prevAll().length;
});
Bạn có thể xuất dữ liệu đó trong các ô khi bạn đang tạo bảng không?
vì vậy bảng của bạn sẽ trông như thế này:
<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>
sau đó sẽ là một vấn đề đơn giản
$("td").click(function(event) {
var row = $(this).attr("data-row");
var col = $(this).attr("data-col");
}
tốt hơn hết là liên kết một trình xử lý nhấp chuột vào toàn bộ bảng và sau đó sử dụng event.target để nhận TD được nhấp. Đó là tất cả những gì tôi có thể thêm vào lúc 1:20 sáng