[英]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.