简体   繁体   English

根据鼠标悬停突出显示表数据

[英]Highlight table data based on list mouse over

I have multiple list item and table data as per my snippet code. 根据我的代码段代码,我有多个列表项和表格数据。 I want to highlight the td when mouse-over based on my list. 我想根据列表在鼠标悬停时突出显示td Currently I did for only one list manually. 目前,我只手动处理了一个列表。 I want to highlight every td based on list selection. 我想根据列表选择突出显示每个td

 $('.list1').mouseenter(function(){ $('.listdiv1').addClass('bg'); }).mouseleave(function() { $('.listdiv1').removeClass('bg'); }); 
 table { border-collapse:collapse; } td { border:1px solid; } .bg { background:red; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul> <li class="list1">List 1</li> <li class="list2">List 2</li> <li class="list3">List 3</li> <li class="list4">List 4</li> </ul> <table> <tr> <td>None</td> <td class="listdiv1">List 1</td> </tr> <tr> <td>None</td> <td class="list2">List 2</td> </tr> <tr> <td>None</td> <td class="list3">List 3</td> </tr> <tr> <td>None</td> <td class="list4">List 4</td> </tr> </table> 

Try like this. 尝试这样。

 $('.dblmenu li').mouseenter(function(){ debugger; var clsNm =$(this).attr('class').split(' ').slice(-1); $('td.'+clsNm+'div').addClass('bg'); }).mouseleave(function() { debugger; var clsNm =$(this).attr('class').split(' ').slice(-1); $('td.'+clsNm+'div').removeClass('bg'); }); 
 table { border-collapse:collapse; } td { border:1px solid; } .bg { background:red; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul class="dblmenu"> <li class="accepted list1">List 1</li> <li class="list2">List 2</li> <li class="list3">List 3</li> <li class="list4">List 4</li> </ul> <table> <tr> <td>None</td> <td class="list1div">List 1</td> </tr> <tr> <td>None</td> <td class="list2div">List 2</td> </tr> <tr> <td>None</td> <td class="list3div">List 3</td> </tr> <tr> <td>None</td> <td class="list4div">List 4</td> </tr> </table> 

 var listItems = $('ul li'); $.each( listItems , function() { $(this).mouseenter(function(){ varclassSelected = $(this).attr('class'); $('table tr td').each(function (index, value) { var matchClass = $(this).attr('class'); if (matchClass === varclassSelected) { $(this).addClass('bg'); } }); }).mouseleave(function(){ $('table tr td').removeClass('bg'); }) }); 
 ul li:hover { cursor: pointer; } table { border-collapse:collapse; } td { border:1px solid; } .bg { background:red; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul> <li class="list1">List 1</li> <li class="list2">List 2</li> <li class="list3">List 3</li> <li class="list4">List 4</li> </ul> <table> <tr> <td>None</td> <td class="list1">List 1</td> </tr> <tr> <td>None</td> <td class="list2">List 2</td> </tr> <tr> <td>None</td> <td class="list3">List 3</td> </tr> <tr> <td>None</td> <td class="list4">List 4</td> </tr> </table> 

Please have a look, solution to your problem. 请看一下,解决您的问题。

Does this fix your problem by adding :hover on tr: 通过在tr上添加:hover是否可以解决您的问题:

 table { border-collapse:collapse; } td { border:1px solid; } tr:hover { background-color: red; } .bg { background:red; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul> <li class="list1">List 1</li> <li class="list2">List 2</li> <li class="list3">List 3</li> <li class="list4">List 4</li> </ul> <table> <tr> <td>None</td> <td class="listdiv1">List 1</td> </tr> <tr> <td>None</td> <td class="list2">List 2</td> </tr> <tr> <td>None</td> <td class="list3">List 3</td> </tr> <tr> <td>None</td> <td class="list4">List 4</td> </tr> </table> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM