【问题标题】:Highlighting row and column of corresponding element of each table on hover悬停时突出显示每个表格对应元素的行和列
【发布时间】:2015-04-21 05:38:36
【问题描述】:

我有两张并排的桌子:

<!DOCTYPE html>
    <table>
        <tr>
            <td>
                <table>
                    <tr><td>1</td><td>2</td><td>3</td></tr>
                    <tr><td>4</td><td>5</td><td>6</td></tr>
                    <tr><td>7</td><td>8</td><td>9</td></tr>
                </table>
            </td>
            <td>
                <table>
                    <tr><td>1</td><td>2</td><td>3</td></tr>
                    <tr><td>4</td><td>5</td><td>6</td></tr>
                    <tr><td>7</td><td>8</td><td>9</td></tr>
                </table>
            </td>
        </tr>
    </table>

当我将鼠标悬停在任何表格上的元素上时,我希望另一个表格上的相应元素也被突出显示(即,如果我将鼠标悬停在一个表格上索引为 [0,0] 的元素上,我希望相应的元素另一个表上的索引 [0,0] 也将突出显示)。

我在这里使用了http://jsfiddle.net/rhyu3r0r/ 的建议在一个表上执行此操作(但是,我使用了addClass 和removeClass,而不是toggleClass)。我将如何进行上述操作?

【问题讨论】:

  • 另一张桌子在哪里
  • 在外表,我有两个内表,这就是我所说的表。

标签: jquery html css html-table hover


【解决方案1】:

这是一种方法,如果表有 id 会容易得多,但这也有效:

$('table table td').hover(function() {
    $this = $(this);
  $this.toggleClass('hovered');
    //which cell is selected
    cell = $this.closest("table").find("td").index(this);
   $this.closest("table").parent().siblings("td").find("td").eq(cell).toggleClass('hovered');
});

http://jsfiddle.net/rhyu3r0r/1/

【讨论】:

  • 可以考虑进行一些优化以使其更快一点,但您明白了..您也可以单独阅读行索引和单元格索引并使用它,如果您选择但最重要的是停止使用表格布局。 :)
猜你喜欢
  • 2015-02-11
  • 1970-01-01
  • 2018-01-07
  • 2019-06-09
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
  • 1970-01-01
相关资源
最近更新 更多