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

如何使用jQuery读取图书购物车表格的每一行数据?

如何用jQuery读取图书购物车表格的每一行数据?

没问题,我来帮你搞定这个需求~下面我会给出几种实用的实现方式,你可以根据自己的场景选择:

基础实现:精准提取每一行数据

如果你的表格列顺序固定,直接通过索引提取单元格内容是最直接的方式:

// 初始化一个数组用来存储所有购物车数据
const cartData = [];

// 遍历表格中除表头外的所有数据行
$('table tr:not(:first)').each(function() {
  // 获取当前行的所有单元格
  const cells = $(this).find('td');
  
  // 提取每个单元格的内容,整理成结构化对象
  const rowInfo = {
    schoolNo: $(cells[0]).text().trim(),
    resourceType: $(cells[1]).text().trim(),
    resourceNo: $(cells[2]).text().trim(),
    resourceTitle: $(cells[3]).text().trim(),
    quantity: parseInt($(cells[4]).text().trim(), 10)
  };
  
  // 将当前行数据存入数组
  cartData.push(rowInfo);
});

// 现在cartData就是包含所有行数据的数组,可按需使用
console.log(cartData);

代码说明:

  • $('table tr:not(:first)'): 选中表格里除第一行(表头)外的所有数据行。注意:如果页面上有多个表格,最好给你的图书购物车表格加个ID(比如id="bookCart"),然后用$('#bookCart tr:not(:first)')来精准选择,避免干扰其他表格。
  • .each(): jQuery的遍历方法,回调函数里的this代表当前遍历到的<tr>元素。
  • .text().trim(): 提取单元格文本并去除前后空白字符,避免不必要的空格干扰。
  • parseInt(..., 10): 把数量字段转换成数字类型,方便后续做计算或统计。

灵活适配版:动态匹配表头

如果表格的列顺序可能会变动,我们可以先读取表头文本,再动态匹配单元格内容,这样代码的适应性更强:

// 先获取表头文本,转换成对象属性名(小写+去掉空格)
const headers = $('table tr:first th').map(function() {
  return $(this).text().trim().toLowerCase().replace(' ', '');
}).get();

const cartData = [];

// 遍历数据行
$('table tr:not(:first)').each(function() {
  const row = {};
  // 遍历当前行的每个单元格
  $(this).find('td').each(function(index) {
    let cellValue = $(this).text().trim();
    // 如果是quantity列,自动转换成数字
    if (headers[index] === 'quantity') {
      cellValue = parseInt(cellValue, 10);
    }
    // 对应表头属性赋值
    row[headers[index]] = cellValue;
  });
  cartData.push(row);
});

console.log(cartData);

这种方式下,哪怕后续表格列的顺序调整,代码也不需要修改索引,直接就能适配,非常适合需求可能变动的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:06:51