我正在尝试创建一个表来显示个人的BMI.
作为其中的一部分,我想,on:hover,for <tr> 和 <col>(或<colgroup>)也要突出显示,以便交叉更加明显.
由于该表将同时包含公制和英制测量,因此:悬停不必停在单元格(从任何方向),并且如果它从一个轴延伸到另一个轴,实际上将是奖励.我也使用XHTML 1.1 Strict doctype,如果这有所不同?
所以...一个例子(真正的桌子......更大),但这应该具有代表性:
<script>
tr:hover {background-color: #ffa; }
colgroup:hover,
col:hover {background-color: #ffa; }
</script>
Run Code Online (Sandbox Code Playgroud)
...
<table>
<col class="weight"></col><colgroup span="3"><col class="bmi"></col></colgroup>
<tr>
<th></th>
<th>50kg</th>
<th>55kg</th>
<th>60kg</th>
</tr>
<tr>
<td>160cm</td>
<td>20</td>
<td>21</td>
<td>23</td>
</tr>
<tr>
<td>165cm</td>
<td>18</td>
<td>20</td>
<td>22</td>
</tr>
<tr>
<td>170cm</td>
<td>17</td>
<td>19</td>
<td>21</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我问不可能,我需要去JQuery病房吗?
我正在努力强调目前正在徘徊<th>的<td>那个.
我可以突出第一个<tr>使用:
#sheet tr:hover td:first-child { color:#000; background:#EAEAEA; }
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点<th>?
注意 - 我正在使用范围<th>,像这样<th scope="col">,我可以使用它吗?
注2 - 或者,有没有办法获得当前列?
我正在探索如何设置表格的样式,以便当鼠标悬停在列上时可以更改边框.

当鼠标位于列上时,我想通过更改边框颜色来突出显示该列:

为了突出显示,我在jQuery库中使用以下JavaScript代码:
$('td').hover(function() {
var t = parseInt($(this).index()) + 1;
$('td:nth-child(' + t + ')').addClass('highlighted');
},
function() {
var t = parseInt($(this).index()) + 1;
$('td:nth-child(' + t + ')').removeClass('highlighted');
});
Run Code Online (Sandbox Code Playgroud)
使用以下CSS:
.highlighted {
border-top: 2px solid black;
border-right: 2px solid black;
border-left: 2px solid black;
}
Run Code Online (Sandbox Code Playgroud)
您可以在这个JSFiddle中查看它是如何工作的:http://jsfiddle.net/sCFjj/1/ 这仅在我将鼠标悬停在最左侧列时才有效.否则,它会突出显示右列(和顶部),但不会突出显示左侧垂直列.有没有办法让左垂直列出现?
理想情况下,我希望效果忽略最低行,但我不确定如何从jQuery选择中排除一行.
我的尝试是基于前一个问题.
我有一些从AJAX调用创建的元素.在这些元素中,有一个子元素,当悬停时需要显示另一个动态创建的子元素.当我.hover在小提琴中运行jquery时,它工作正常.当我在我的代码中实现它时,它不想工作.
我想知道它是否取决于.hover加载脚本的时间与从AJAX加载元素的时间.是否需要先走另一个?是否应该.promise在.hover脚本运行之前等待AJAX元素加载?
这是我的例子的小提琴.