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

如何遍历不同div中的产品数组并统计可用产品数量存入数组?

遍历div获取产品数量数组的解决方案

没问题,这事儿其实挺简单的,我给你捋捋具体怎么做:

首先,你需要先选中所有包含产品数组的目标div。从你给出的代码片段来看,这些div都带有data-gtm-ecommerce.purchase相关的属性,所以可以用这个特征来精准选择它们。

接下来,遍历每个选中的div,提取里面的产品数组,获取其长度后存入新数组即可。这里要注意处理数据解析的问题——通常这类data属性会存储JSON格式的字符串,所以需要先解析成对象再操作。

下面是具体的代码实现:

// 选中所有带有电商购买数据属性的div
const productDivs = document.querySelectorAll('[data-gtm-ecommerce.purchase]');
// 初始化空数组,用来存储每个div的产品数量
const productCounts = [];

// 遍历每个div处理数据
productDivs.forEach(div => {
  // 解析div的data属性为JavaScript对象
  const purchaseData = JSON.parse(div.getAttribute('data-gtm-ecommerce.purchase'));
  // 安全获取products数组的长度,避免不存在时出错
  const currentCount = purchaseData?.products?.length || 0;
  // 将数量推入结果数组
  productCounts.push(currentCount);
});

// 打印结果,你可以根据需求使用这个数组
console.log(productCounts);

补充说明:

  • 如果你的产品数组不是存在data-gtm-ecommerce.purchase属性里,而是在div内部的其他位置(比如子元素、内嵌脚本),可以调整选择器或者数据提取的方式。比如如果每个div里有一个类名为products-list的元素,里面存着数组,就改成选择对应的子元素来提取。
  • 代码里用了?.可选链操作符和|| 0默认值,是为了防止某些div里没有products数组或者数据格式异常时抛出错误,让代码更健壮。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:02:21