0

我在一个 div 中有 2 个表,我想同时突出显示两个表上的同一行。现在我只设法让它突出显示 1 个表中的列和行。

(例如:如果我将鼠标悬停在 中的“Row2 Column3”上tbl-2tbl-1则应突出显示 Row2 中的内容,反之亦然)

另外,我如何让它也突出显示th标签?

<div class="row">
<div class="span2 pull-left">
    <table class="table table-bordered pull-left" id="compare-tbl-1">
        <thead>
            <th>Column 1</th>
        </thead>
        <tbody>
            <tr>
                <td>
                    Row1
                </td>
            </tr>
            <tr>
                <td>
                    Row2
                </td>
            </tr>
            <tr>
                <td>
                    Row3
                </td>
            </tr>
            <tr>
                <td>
                    Row4
                </td>
            </tr>
            <tr>
                <td>
                    Row5
                </td>
            </tr>
        </tbody>
    </table>
</div>
<div class="span10 pull-right">
    <table class="table table-bordered" id="compare-tbl-2">
        <thead>
            <th>Column 1</th><th>Column 2</th><th>Column 3</th><th>Column 4</th><th>Column 5</th>
        </thead>
        <tbody>
            <tr>
                <td>Row1 Column1</td><td>Row1 Column2</td><td>Row1 Column3</td><td>Row1 Column4</td><td>Row1 Column5</td>
            </tr>
            <tr>
                <td>Row2 Column1</td><td>Row2 Column2</td><td>Row2 Column3</td>    <td>Row2 Column4</td><td>Row2 Column5</td>
            </tr>
            <tr>
                <td>Row3 Column1</td><td>Row3 Column2</td><td>Row3 Column3</td><td>Row3 Column4</td><td>Row3 Column5</td>
            </tr>
            <tr>
                <td>Row4 Column1</td><td>Row4 Column2</td><td>Row4 Column3</td><td>Row4 Column4</td><td>Row4 Column5</td>
            </tr>
            <tr>
                <td>Row5 Column1</td><td>Row5 Column2</td><td>Row5 Column3</td><td>Row5 Column4</td><td>Row5 Column5</td>
            </tr>
        </tbody>
    </table>
</div>

<script>
    $("#compare-tbl-2 td").hover(function() {
            $(this).parents('table').find('td:nth-child(' + ($(this).index() + 1) + ')').
                  add($(this).parent()).addClass('compare-hover');
      },
      function() {
            $(this).parents('table').find('td:nth-child(' + ($(this).index() + 1) + ')').
                  add($(this).parent()).removeClass('compare-hover');
      });
</script>
4

1 回答 1

0

尝试用这个替换你的脚本:

$("#compare-tbl-2 td").hover(function() {
$(this).closest('tr').addClass('compare-hover');
var idx = $(this).closest('tr')[0].sectionRowIndex + 1;

$('#compare-tbl-1').find('tr:nth-child(' + idx + ')').addClass('compare-hover');
  },
  function() {
      $(this).closest('tr').removeClass('compare-hover');
      $('#compare-tbl-1').find('tr').removeClass('compare-hover');
  });

jsFiddle

于 2013-02-04T17:08:23.053 回答