javascript - 将鼠标悬停在单元格上时,在表格单元格 (td) 的工具提示上获取表格标题 (th)
问题描述
我有 3 列的表 - 当我将鼠标悬停在第 3 列时,工具提示应该显示它的表头th
值。
这是我到目前为止所拥有的(不工作):
Javascript:
$('#waypointsTable td').hover(function() {
var $td='td';
var $th = $td.closest('tbody').prev('thead').find('> tr > th:eq(' + $td.index() + ')');
});
html:
<table id="waypointsTable" border="1">
<tbody>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
<tr>
<td>some text 1</td>
<td>some text 1</td>
<td>some text 1</td>
</tr>
<tr>
<td>some text 2</td>
<td>some text 2</td>
<td>some text 2</td>
</tr>
<tr>
<td>some text 3</td>
<td>some text 3</td>
<td>some text 3</td>
</tr>
</tbody>
</table>
解决方案
基于提供的javascript:
首先,如果您正在使用,
.prev("thead")
那么您需要更改您的 html 以使其具有<thead>
.接下来,使用
mouseover
而不是hover
- 没有太大区别,但是您不需要在“悬停”上做任何事情,所以不需要这样做。用于
var td = $(this)
获取当前单元格使用您现有的代码(大部分)来获取相关的
th
然后,使用
td.attr("title", th.text())
设置单元格上的工具提示。
放在一起:
$('#waypointsTable tbody td').on("mouseover", function() {
var td = $(this);
var th = td.closest('tbody').prev('thead').find('> tr > th:eq(' + td.index() + ')');
td.attr("title", th.text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="waypointsTable" border="1">
<thead>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
</thead>
<tbody>
<tr>
<td>some text 1</td>
<td>some text 1</td>
<td>some text 1</td>
</tr>
<tr>
<td>some text 2</td>
<td>some text 2</td>
<td>some text 2</td>
</tr>
<tr>
<td>some text 3</td>
<td>some text 3</td>
<td>some text 3</td>
</tr>
</tbody>
</table>
您可以在启动时执行此操作,因为工具提示一旦设置就不会更改。
推荐阅读
- javascript - 如何使用 javascript 删除和添加 css 样式 - 添加的样式未反映在 UI 中
- python - 如何将不同的数据框写入 csv 文件的单独表格中?
- azure - 如何使用二级索引在 Azure 中存储和读取数百万条记录
- sql - 进行查询以显示访问中的最大数据
- java - 重载方法如何决定 Java 中的类型
- python - 从 Python3 中的字符串中删除非拉丁字符
- sql-server - 在服务器属性中更改 Microsoft SQL 日志的默认位置会导致意外行为或任何性能问题吗?
- python - 将 Pandas 数据帧从宽转长
- jpa - 如何从非拥有方保存具有双向关系的实体?
- excel - 如何在 Excel 中列出从 N 个对象中取出 5 个的所有可能组合?