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

如何通过单个按钮点击展开多个表格<tr>元素

解决产品对比表格的显示/隐藏功能问题

首先修正核心问题:HTML中id属性必须唯一,你之前重复使用id="hide"会导致getElementById只作用于第一个匹配元素,所以只有第一行能切换显示状态。下面是修改后的完整实现:

修改后的JavaScript代码

function toggleTable() {
  // 获取所有需要切换的表格行
  const toggleRows = document.querySelectorAll('.toggle-row');
  // 遍历每一行切换显示状态
  toggleRows.forEach(row => {
    if (row.style.display === 'none') {
      row.style.display = 'table-row';
    } else {
      row.style.display = 'none';
    }
  });
}

修改后的HTML代码

<h2>产品对比表格</h2>
<div>
  <table>
    <tbody>
      <tr>
        <td>基础参数</td>
        <td>信息</td>
      </tr>
      <tr>
        <td>基础参数</td>
        <td>信息</td>
      </tr>
      <!-- 用class替代重复id -->
      <tr class="toggle-row" style="display:none;">
        <td>扩展规格</td>
        <td>详情</td>
      </tr>
      <tr class="toggle-row" style="display:none;">
        <td>扩展规格</td>
        <td>详情</td>
      </tr>
    </tbody>
  </table>
</div>
<button type="button" onclick="toggleTable()">显示/隐藏扩展规格 ▼</button>

关键说明

  • 使用document.querySelectorAll('.toggle-row')获取所有需要切换的行,它会返回所有匹配该类名的元素集合
  • 通过forEach遍历集合,逐个切换每一行的display状态
  • 保留table-row作为显示状态的值,确保表格布局不会错乱

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:42:39