You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现悬停某<td>时,所有包含相同内容的<td>均显示红色背景

实现方案

你当前使用的CSS规则td:hover只能匹配到当前被鼠标悬停的单个<td>元素,无法批量选中所有内容相同的<td>,需要配合JavaScript实现需求,修改后的代码如下:

调整后的CSS代码

table {
  margin: 2rem;
}

th, td {
  border: 1px solid #333;
}

/* 新增高亮类,替代原有的:hover规则 */
.highlight {
  background-color: red;
}

html {
  font-size: 24px;
}

新增JavaScript代码

直接把这段代码插入到页面</body>标签前即可:

// 获取页面所有td元素
const allTd = document.querySelectorAll('td');

allTd.forEach(td => {
  // 鼠标移入事件
  td.addEventListener('mouseenter', () => {
    // 拿到当前悬停td的文本内容,trim去除首尾空白避免匹配误差
    const currentText = td.textContent.trim();
    // 遍历所有td,匹配到相同内容就添加高亮类
    allTd.forEach(item => {
      if (item.textContent.trim() === currentText) {
        item.classList.add('highlight');
      }
    })
  })

  // 鼠标移出事件,清除所有高亮状态
  td.addEventListener('mouseleave', () => {
    allTd.forEach(item => item.classList.remove('highlight'))
  })
})

原有HTML代码不需要做修改,引入上述CSS和JS之后就能实现需求:悬停某个<td>时,所有内容完全相同的<td>都会同步变红,鼠标移出后自动恢复默认样式。

内容的提问来源于stack exchange,提问作者Muneeb K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:09:04