javascript - 突出显示 HTML 表格中的行(悬停在行和前面的行上)

标签 javascript jquery html css

假设一个示例表:

<table>
   <tr>
     <th>Head 1</th>
     <th>Head 2</th>
    </tr>
    <tr>
      <td>Data 1</td>
      <td>Data 2</td>
    </tr>
    <tr>
      <td>Data 3</td>
      <td>Data 4</td>
    </tr>
    <tr>
      <td>Data 5</td>
      <td>Data 6</td>
    </tr>
    <tr>
      <td>Data 7</td>
      <td>Data 8</td>
    </tr>
</table>

我正在寻找突出显示 <= n 行的最佳技术,其中 n 是悬停在行上的行(不包括标题行)。例如,如果鼠标悬停

<tr>
  <td>Data 5</td>
  <td>Data 6</td>
</tr>

表格的以下部分应突出显示:

<tr>
  <td>Data 1</td>
  <td>Data 2</td>
</tr>
<tr>
  <td>Data 3</td>
  <td>Data 4</td>
</tr>
<tr>
  <td>Data 5</td>
  <td>Data 6</td>
</tr>

知道如何实现这种效果吗?

最佳答案

基本上,您可以相反的方式看到事物:悬停在 tr 之后的任何 tr 都应该没有背景: 测试这个:

table:hover tr {
  background:gray;
}
table:hover tr:hover ~tr {
  background:none;
}

DEMO


=============== 根据评论中的请求编辑 ================

React only on last element in row .

注意:此选项不允许点击单元格,而是点击每行的最后一个单元格。


table {
  pointer-events:none;
}
table tr :last-child {
  pointer-events:auto;
  cursor: pointer;
}

关于javascript - 突出显示 HTML 表格中的行(悬停在行和前面的行上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22634961/

相关文章:

javascript - 通过 Crossfilter 使用日期作为过滤器

javascript - 如何检查路径是绝对路径还是相对路径

javascript - 使用 PHP 和 Jquery 将表单输入字段添加到电子邮件

javascript - ASP.NET MVC Web API 使用 jQuery Ajax 删除调用,数据参数不起作用

javascript - 包裹在 'select' 标签内时的 HTML 和 CSS 可能性

Selenium :After launching a website how could we check if the right page is launched

javascript - 剥离变量 : javascript 中的文本

javascript - 使元素可点击的 Angular Directive(指令)?

javascript - 注册单击 body 上除 div 及其所有子项之外的所有内容

javascript - 删除线表和/或 DIV