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

如何从Nike商品页面提取可用鞋码的data-tamanho属性值列表?

如何从Nike Daybreak页面提取可用鞋码的data-tamanho属性值?

我尝试从Nike的Nike Daybreak鞋款页面提取可用鞋码列表。所有鞋码(含可用与不可用)均位于<li>标签中,在控制台调用document.getElementsByClassName('tamanho__item_pdp js-tamanho__item_pdp')会返回包含所有可用鞋码的HTMLCollection,每个元素为<input type="radio" class="tamanho__item_pdp js-tamanho__item_pdp" data-tamanho="36" data-codigoproduto="194495234016" name="tamanho__id" id="tamanho__id36" value="https://www.nike.com.br/Snkrs/Produto/Daybreak/153-169-211-222753">。请问如何仅提取作为鞋码编号的data-tamanho属性值,并生成所有可用鞋码的列表?

没问题,我来帮你搞定这个需求!下面是几种简单直接的原生JavaScript方案,都可以直接在浏览器控制台里运行:

方案1:用Array.from()+map快速转换提取

HTMLCollection本身不是数组,但我们可以用Array.from()把它转成数组,再用map方法批量提取data-tamanho属性:

// 获取所有可用鞋码的DOM元素集合
const sizeElements = document.getElementsByClassName('tamanho__item_pdp js-tamanho__item_pdp');
// 转换为数组并提取鞋码值
const availableSizes = Array.from(sizeElements).map(element => element.dataset.tamanho);
// 打印结果
console.log(availableSizes);

这里用element.dataset.tamanho是HTML5标准的data属性获取方式,比getAttribute('data-tamanho')更简洁直观。

方案2:兼容旧浏览器的for循环写法

如果需要适配不支持ES6语法的旧浏览器,可以用传统的for循环来遍历集合:

const sizeElements = document.getElementsByClassName('tamanho__item_pdp js-tamanho__item_pdp');
const availableSizes = [];
// 逐个遍历元素提取鞋码
for (let i = 0; i < sizeElements.length; i++) {
  const size = sizeElements[i].getAttribute('data-tamanho');
  availableSizes.push(size);
}
console.log(availableSizes);

方案3:扩展运算符(...)简化转换

另一种把HTMLCollection转成数组的方式是用ES6的扩展运算符,写法更简洁:

const sizeElements = document.getElementsByClassName('tamanho__item_pdp js-tamanho__item_pdp');
const availableSizes = [...sizeElements].map(el => el.dataset.tamanho);
console.log(availableSizes);

额外小技巧

如果需要把鞋码从字符串转为数字类型(比如后续要做排序或计算),只需要在map里加个Number()转换:

const availableSizes = [...sizeElements].map(el => Number(el.dataset.tamanho));

执行完上面的代码后,你就会得到一个包含所有可用鞋码的数组,比如["36", "37", "38"]或者[36, 37, 38](取决于是否转换类型)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 21:27:55