在html表格中突出显示鼠标悬停时选定的行和列

use*_*222 3 html javascript css jquery

我需要在鼠标悬停时突出显示表格中单元格的行和列.生成的表格是动态的,我从数据库中获取值并显示在html表格中.表的结构完全如下所示,我无法修改现有结构.请使用我现有的html代码建议如何使用jquery/css突出显示表中选定的行和列.请找到小提琴http://jsfiddle.net/0w9yo8x6/78/.

以下是html代码:

<div>
<table border="1px">
<tr>
<td>
    <table style="width:100%">
        <tr title="Table Header">
        <td>
        Title
        </td>
        </tr>
    </table>
</td>
</tr>
<tr>
<td>
    <table border="1px">
        <tr>
         <td></td>
         <td bgcolor="grey">Header1</td>
         <td bgcolor="grey">Header2</td>
         <td bgcolor="grey">Header3</td>
         <td bgcolor="grey">Header4</td>
         <td bgcolor="grey">Header5</td>
         </tr>

    <tr>
         <td bgcolor="grey">Row1</td> 
         <td>
            <table>
            <tr>
            <td>
               Cell1  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell1
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell1  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell1
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell1  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell1
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell1  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell1
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell1  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell1
            </td>
            </tr>
          </table> 
      </td> 
      </tr>

         <tr>
         <td bgcolor="grey">Row2</td> 
         <td>
            <table>
            <tr>
            <td>
               Cell2  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell2
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell2  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell2
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell2  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell2
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell2  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell2
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell2  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell2
            </td>
            </tr>
          </table> 
      </td> 
      </tr>


         <tr>
         <td bgcolor="grey">Row3</td> 
         <td>
            <table>
            <tr>
            <td>
               Cell3  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell3
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell3  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell3
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell3  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell3
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell3  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell3
            </td>
            </tr>
          </table> 
      </td> 
         <td>
            <table>
            <tr>
            <td>
               Cell3  
            </td>
            </tr>
            <tr> 
            <td class='innerCell'>
            Inner cell3
            </td>
            </tr>
          </table> 
      </td> 
      </tr>
      </table>
      </td>
      </tr>
      </table>
      </div>
Run Code Online (Sandbox Code Playgroud)

ind*_*lee 8

突出显示特定的行和列.对于我用作nth-child()选择器一部分的列.希望这可以帮助.

注意:我.myCell在第二级嵌套表的tds中添加了类,以便更轻松地使用jquery的选择器名称.

$(document).ready(function() {
    $('.myCell').on('mouseover', function() {
        $(this).closest('tr').addClass('highlight');
        $(this).closest('table').find('.myCell:nth-child(' + ($(this).index() + 1) + ')').addClass('highlight');
    });
    $('.myCell').on('mouseout', function() {
        $(this).closest('tr').removeClass('highlight');
        $(this).closest('table').find('.myCell:nth-child(' + ($(this).index() + 1) + ')').removeClass('highlight');
    });
});
Run Code Online (Sandbox Code Playgroud)
.highlight {
    background-color:lightgray;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
    <table border="1px">
        <tr>
            <td>
                <table style="width:100%">
                    <tr title="Table Header">
                        <td>
                            Title
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
        <tr>
            <td>
                <table border="1px">
                    <tr>
                        <td></td>
                        <td bgcolor="grey">Header1</td>
                        <td bgcolor="grey">Header2</td>
                        <td bgcolor="grey">Header3</td>
                        <td bgcolor="grey">Header4</td>
                        <td bgcolor="grey">Header5</td>
                    </tr>
                    
                    <tr>
                        <td bgcolor="grey" class="myCell">Row1</td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell1  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell1
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell1  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell1
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell1  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell1
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell1  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell1
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell1  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell1
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                    </tr>
                    
                    <tr>
                        <td bgcolor="grey" class="myCell">Row2</td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell2  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell2
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell2  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell2
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell2  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell2
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell2  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell2
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell2  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell2
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                    </tr>
                    
                    
                    <tr>
                        <td bgcolor="grey" class="myCell">Row3</td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell3  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell3
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell3  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell3
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell3  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell3
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell3  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell3
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                        <td class="myCell">
                            <table>
                                <tr>
                                    <td>
                                        Cell3  
                                    </td>
                                </tr>
                                <tr> 
                                    <td class='innerCell'>
                                        Inner cell3
                                    </td>
                                </tr>
                            </table> 
                        </td> 
                    </tr>
                </table>
            </td>
        </tr>
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)


Jos*_*ess 5

由于您将表嵌套两层,因此您的 CSS 应该如下所示:

table table tr:hover td {
  background-color: #fbc93d;
}
Run Code Online (Sandbox Code Playgroud)

这是一个基于您的小提琴的示例:

例子