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

如何使用jQuery实现多维tr/td表格中单个单元格的单选切换?

实现表格全局唯一选中单元格

没问题,我帮你调整代码实现全局单选的效果~你的需求是整个表格里只能选中一个单元格,点击新单元格时自动取消之前的选中状态,原来的代码只限制了当前行内的切换,我们只需要把移除选中样式的范围从「当前行的td」改成「整个表格的td」就可以了。

修改后的JavaScript代码

$("#cube_power_grid").on("click", "td", function () {
  // 移除整个表格中所有td的选中样式
  $("#cube_power_grid td").removeClass("selected_power");
  // 给当前点击的td添加选中样式
  $(this).addClass("selected_power");
});

完整代码示例

下面是整合后的完整代码,你可以直接使用:

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<body>
  <table id="cube_power_grid">
    <tr>
      <td>3</td>
      <td>5</td>
      <td>8</td>
    </tr>
    <tr>
      <td>10</td>
      <td>12</td>
      <td>15</td>
    </tr>
    <tr>
      <td>20</td>
      <td>25</td>
      <td>30</td>
    </tr>
  </table>
</body>
</html>

CSS

#cube_power_grid {
  width: 30vw;
  font-family: Varela Round;
  box-shadow: 0px 0px 6px 2px rgb(137, 57, 210);
}
#cube_power_grid tr {
  text-align: center;
  height: 10vh;
}
#cube_power_grid td {
  text-align: center;
  border-radius: 5px;
  cursor: pointer;
  background: linear-gradient(126deg, rgba(143,61,217,1) 12%, rgba(109,35,177,1) 43%, rgb(101, 34, 162) 72%);
  color: #FFF;
}
#cube_power_grid td:hover {
  background: #FFF;
  color: #712870;
  box-shadow: 0px 0px 6px 2px rgb(137, 57, 210);
}
.selected_power {
  background: #FFF !important;
  color: #712870 !important;
  box-shadow: 0px 0px 6px 2px rgb(137, 57, 210) !important;
}

原理说明

原来的代码中$(this).parent().find("td")只会选中当前点击单元格所在行的所有td,所以只能实现单行内的单选切换。现在改成$("#cube_power_grid td"),会选中表格内所有的td,这样就能一次性移除所有单元格的选中样式,再给当前点击的单元格添加样式,从而实现全局唯一选中的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 20:07:35