【发布时间】:2009-04-25 04:25:13
【问题描述】:
如何使用jQuery获取点击的表格单元格的行号和列号,即
$("td").onClick(function(event){
var row = ...
var col = ...
});
【问题讨论】:
标签: jquery
如何使用jQuery获取点击的表格单元格的行号和列号,即
$("td").onClick(function(event){
var row = ...
var col = ...
});
【问题讨论】:
标签: jquery
您可以在给定的上下文中使用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);
});
检查一个正在运行的示例here。
【讨论】:
ROWSPAN's jsbin.com/eyeyu/1099/edit#preview 单击带有文本 "12" 的单元格。列索引必须为 4
var row = $(this).closest('tr').index()
$('td').click(function() {
var myCol = $(this).index();
var $tr = $(this).closest('tr');
var myRow = $tr.index();
});
【讨论】:
点击获取列索引:
$(this).closest("td").index();
点击获取行索引:
$(this).closest("tr").index();
【讨论】:
在我的脑海中,一种方法是抓取所有以前的元素并计算它们。
$('td').click(function(){
var colIndex = $(this).prevAll().length;
var rowIndex = $(this).parent('tr').prevAll().length;
});
【讨论】:
您可以在创建表格时在单元格中输出该数据吗?
所以你的表格应该是这样的:
<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");
}
【讨论】:
最好将点击处理程序绑定到整个表,然后使用 event.target 来获取点击的 TD。这就是我可以在凌晨 1 点 20 分添加的所有内容
【讨论】: