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

如何在Webflow中获取选中商品选项的文本内容?

实现Webflow商品选项变更时获取选中选项文本的方法

1. 初始获取当前选中的选项文本

直接通过属性选择器定位已选中的选项,再提取内部文本:

// 定位当前选中的选项元素
const selectedOption = document.querySelector('[role="radio"][aria-checked="true"]');
// 提取选项文本(做空值判断避免报错)
const selectedText = selectedOption ? selectedOption.querySelector('.text-block-3').textContent.trim() : '';
console.log(selectedText); // 输出当前选中值,例如"red"

2. 监听选项变更,实时获取选中值

利用事件委托监听选项组的点击事件,确保动态加载的选项也能触发,同时等待Webflow完成内部状态更新:

// 获取颜色选项组容器(可根据aria-label或类名定位)
const colorOptionGroup = document.querySelector('[role="radiogroup"][aria-label="Color"]');

// 监听容器内的点击事件
colorOptionGroup.addEventListener('click', (e) => {
  // 找到点击的选项元素(兼容点击子元素的情况)
  const clickedPill = e.target.closest('[role="radio"]');
  if (!clickedPill) return;

  // 短延迟等待Webflow更新选中状态
  setTimeout(() => {
    const newSelected = colorOptionGroup.querySelector('[role="radio"][aria-checked="true"]');
    if (newSelected) {
      const currentSelectedText = newSelected.querySelector('.text-block-3').textContent.trim();
      console.log('当前选中的选项:', currentSelectedText);
      // 此处可将currentSelectedText作为变量用于后续业务逻辑
    }
  }, 100);
});

额外提示

  • 若页面存在多个选项组(如颜色、尺寸),可通过data-commerce-option-set-id或不同的aria-label值区分定位,避免冲突。
  • 也可通过Webflow的选中类w--ecommerce-pill-selected替代aria-checked="true"作为选择器,效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:46:07