如何使用js或jquery突出显示html表中的列?

我正在尝试实现一个javascript,它将突出显示单击html表中的列。如下面的行高亮显示我尝试使用相同的table.columns但table.columns不存在。有没有使用jquery突出显示html表中的列?

突出显示行的工作代码:表格突出显示POC

 function highlight() { var table = document.getElementById('dataTable'); for (var i = 0; i < table.rows.length; i++) { table.rows[i].onclick = function () { if (!this.hilite) { this.origColor = this.style.backgroundColor; this.style.backgroundColor = '#BCD4EC'; this.hilite = true; } else { this.style.backgroundColor = this.origColor; this.hilite = false; } } } }   table { border-spacing: 0px; } td { border: 1px solid #bbb; padding: 0.2em; }    
Data1Data2
Data1Data2
Data1Data2

您可以使用以下代码:

 $('td').on('click', function() { var $currentTable = $(this).closest('table'); var index = $(this).index(); $currentTable.find('td').removeClass('selected'); $currentTable.find('tr').each(function() { $(this).find('td').eq(index).addClass('selected'); }); }); 

只需将它放在您的JS文件上,它就可以独立地处理所有可用的表。 如果您只想在特定的表上使用它,只需将初始选择器更改为$('#myTable td')

也别忘了添加.selected{ background-color: #ace; } 在yor css文件中的类。

这是工作示例 。

干杯!

请试试这个:

 $("#dataTable tr td").click(function() { //Reset $("#dataTable td").removeClass("highlight"); //Add highlight class to new column var index = $(this).index(); $("#dataTable tr").each(function(i, tr) { $(tr).find('td').eq(index).addClass("highlight"); }); }); 
 .highlight { background-color: yellow; } 
  
Data1Data2
Data1Data2
Data1Data2

叉式Fisnik Tahiri解决方案也支持tr选择(如果您愿意,可以基于css或jquery)

CSS:

 .selected{ background-color: #ace; } tr:hover{ background-color: #ace; } 

JS:

 $('td').on('mouseenter', function() { var $currentTable = $(this).closest('table'); //var $row = $(this).closest('tr'); var index = $(this).index(); //clean $currentTable.find('td').removeClass('selected'); //select row if you want use js //$currentTable.find('tr').removeClass('selected'); //$row.addClass('selected'); //select column $currentTable.find('tr').each(function() { $(this).find('td').eq(index).addClass('selected'); }); }); 

工作实例

      onclick highlight     
Date1 Date2 Date3
Date1 Date2 Date3
Date1 Date2 Date3