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

如何使用JavaScript获取HTML表格中未点击行的数据

实现表格未点击行数据的JSON持久化

核心思路

给表格每行的按钮绑定点击事件,点击后标记当前行已被操作;当任意按钮被点击时,筛选出所有未被标记的行,提取行内的部门、创建日期、客户名称数据,转换为JSON字符串后完成持久化。

修改后的HTML代码

给每行按钮添加统一类名,方便JS选择操作:

<table id="all_departments">
 <thead>
          <th><button>click</button></th>                                    
          <th>Departments</th>
          <th>Creation Date</th>
          <th>Name</th>
 </thead>
<tbody class="bl">
       <tr>
            <td><button class="row-btn">click</button></td>
            <td>Management</td>
            <td>2-3-2016</td>
            <td>client x</td>
      </tr>

       <tr>
            <td><button class="row-btn">click</button></td>
            <td>Sales</td>
            <td>25-6-2019</td>
            <td>client y</td>
      </tr>
</tbody>
</table>

JavaScript实现代码

// 获取所有行内的操作按钮
const rowButtons = document.querySelectorAll('.row-btn');

// 给每个按钮绑定点击事件
rowButtons.forEach(btn => {
  btn.addEventListener('click', function() {
    // 标记当前按钮所在的行已被点击
    this.closest('tr').classList.add('clicked');
    
    // 收集所有未被点击行的数据
    const unclickedRowsData = [];
    const allRows = document.querySelectorAll('#all_departments tbody tr');
    
    allRows.forEach(row => {
      // 跳过已经标记为点击的行
      if (row.classList.contains('clicked')) return;
      
      // 提取当前行的列数据
      const cells = row.querySelectorAll('td');
      unclickedRowsData.push({
        department: cells[1].textContent.trim(),
        creationDate: cells[2].textContent.trim(),
        clientName: cells[3].textContent.trim()
      });
    });
    
    // 将数据转换为JSON字符串
    const jsonData = JSON.stringify(unclickedRowsData);
    
    // 持久化存储(示例用localStorage,可替换为后端接口请求等方式)
    localStorage.setItem('unclickedDepartments', jsonData);
    
    // 可选:控制台打印结果用于验证
    console.log('未点击行的JSON数据:', jsonData);
  });
});

代码说明

  • 点击按钮时,通过closest('tr')定位当前行,添加clicked类完成已操作标记
  • 遍历表格所有数据行,排除带有clicked类的行,提取对应列的文本内容
  • 用JSON.stringify()将数据数组转为JSON字符串,通过localStorage实现浏览器端持久化;若需后端存储,替换localStorage.setItem部分为接口请求即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:03:30