javascript - 如何将侦听器添加到表列
问题描述
我想将侦听器添加到html
表列中,这样当我单击所谓的可视化table column
时,我想使用js
. 考虑一下:
<table>
<thead>
<tr>
<th>name</th>
<th>lastname</th>
</tr>
</thead>
<tbody>
<tr>
<td>Guga</td>
<td>Nemsitsveridze</td>
</tr>
<tr>
<td>Giorgi</td>
<td>Beshidze</td>
</tr>
</tbody>
</table>
现在,当我单击lastname
单元格(我的意思是以下元素之一:、、、<th>lastname</th>
)时<td>Nemsitsveridze</td>
,<td>Beshidze</td>
我想使用js
.
class
我正在考虑的解决方案是为单元格的每个元素 分配某种属性并独立lastname
添加相同的属性event listener
,但我不确定它是否是解决此问题的唯一方法。
如果有人知道如何实现这一目标,请回答问题。
提前致谢。
解决方案
为了在单击列时执行某些操作,您可以向整个表添加一个事件侦听器,然后检查单击了哪一列,然后执行一些代码。
使用window.event.target.cellIndex
您可以访问单元格索引。
使用window.event.target.parentNode.rowIndex
您可以访问行索引。
document.getElementById('myTbl').addEventListener('click', function(event)
{
var col = window.event.target.cellIndex;
var row = window.event.target.parentNode.rowIndex;
if (col==1){
alert('Col index is: ' + col + '\nRow index is: ' + row);
}
});
table, td {
border: 1px solid black;
}
<table id="myTbl">
<thead>
<tr>
<th>name</th>
<th>lastname</th>
</tr>
</thead>
<tbody>
<tr>
<td>Guga</td>
<td>Nemsitsveridze</td>
</tr>
<tr>
<td>Giorgi</td>
<td>Beshidze</td>
</tr>
</tbody>
</table>
推荐阅读
- python - 将类似 matplotlib 的交互式动画发布到 html 的最简单方法?
- javafx - 作为 fxml 一部分的 JavaFx 更新折线图不起作用
- typescript - 添加 PhysicsImpostor 将网格倒置
- angular - Angular 将一个可观察的嵌套对象映射到另一个对象
- javascript - 我网站上的 Twitter 关注按钮 - Flash of Unstyled Content
- php - WooCommerce 受保护的下载文件夹引发 403 禁止错误
- python - Python sleep() 函数无法正常工作
- c - uint64_t 到数组 - C 语言
- python - Pygame 不会 blit 图像列表
- c++ - 无法停止服务并出现错误 ERROR_SERVICE_CANNOT_ACCEPT_CTRL