【发布时间】:2019-10-07 03:12:56
【问题描述】:
所以我有两个不同的 HTML 表格,它们的值可能相同,也可能不同。我正在寻找一种方法来突出显示表中具有相同值的单个单元格。例如在下表中,当鼠标悬停在第一个表中的 1 上时,它将突出显示该单元格以及表 2 中所有包含 1 的单元格。
我可以用一些简单的 CSS 突出显示单个单元格,但不知道如何突出显示不同表格上的相应单元格。
<table id="table1" border=1>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>1</td>
<td>5</td>
</tr>
<tr>
<td>6</td>
<td>7</td>
<td>1</td>
<td>9</td>
<td>10</td>
</td>
</table>
..........
<table id="table2" border=1>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>1</td>
</tr>
<tr>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
<td>1</td>
</td>
</table>
给定的答案适用于此示例代码,但我希望使用用户输入的表格来实现它,如下所示
<script type="text/javascript">
function generateTable()
{
var rows1 = document.getElementById('rows1').value;
var columns1 = document.getElementById('columns1').value;
var tableBegin = '<table border="1">\n';
var body = '';
for(var i=0; i < rows1; i++)
{
body += '<tr>';
for(var j=0; j < columns1; j++)
{
body += '<td>';
body += Math.floor(Math.random()*11);
body += '</td>'
}
body += '</tr>\n';
}
var endTable = '</table>';
document.getElementById('firstTable').innerHTML = tableBegin + body + endTable;
}
function generateTable2()
{
var rows2 = document.getElementById('rows2').value;
var columns2 = document.getElementById('columns2').value;
var tableBegin2 = '<table border="1">\n';
var body2 = '';
for(var i=0; i < rows2; i++)
{
body2 += '<tr>';
for(var j=0; j < columns2; j++)
{
body2 += '<td>';
body2 += Math.floor(Math.random()*11);
body2 += '</td>'
}
body2 += '</tr>\n';
}
var endTable2 = '</table>';
document.getElementById('secondTable').innerHTML = tableBegin2 + body2 + endTable2;
}
</script>
<form name="makeTable1">
Table 1<br>
Rows: <input type="text" name="rows1" id="rows1"><br>
Columns: <input type="text" name="columns1" id="columns1"><br><br>
<input name="generate" type="button" value="Generate Table" onclick='generateTable();'/>
</form>
Table 2<br>
Rows: <input type="text" name="rows2" id="rows2"><br>
Columns: <input type="text" name="columns2" id="columns2"><br>
<form name="makeTable2">
<input name="generate" type="button" value="Generate Table" onclick='generateTable2();'/>
</form>
<div id="firstTable"></div>
如何修改要在这些表上实施的答案?
【问题讨论】:
-
onmouseover-onmouseout事件可以帮助您。但是,使用一些行列数据标记单元格可能很有用,例如data-rc="1-2"... -
@ZorgoZ 你说的这个东西是用js而不是css
-
请在codepen或codesandbox中添加您的代码给帮助您的人,谢谢
-
@Abal 请不要要求将代码发布到第三方网站,因为这些链接可能会随着时间的推移而失效。可以在 Stack Overflow 问题中插入可运行代码。
-
好的,所以把你的代码放在这里我们可以看到它的实际效果
标签: javascript jquery html css