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

如何实现点击颜色选项后联动展示对应颜色的尺码数据?

前端展示视图
两个商品变体示意图

颜色联动尺码交互实现方案
  • 第一步:整理关联数据结构
    将颜色和对应尺码做绑定,示例如下:
const colorSizeMap = {
  "黑色": ["S", "M", "L", "XL", "XXL"],
  "绿色": ["S", "M", "L"]
}

如果需要额外携带库存、售价等信息,也可以把数组项换成对象存储。

  • 第二步:编写基础页面结构
<!-- 颜色选择区域 -->
<div class="color-selector">
  <button class="color-item" data-color="黑色">黑色</button>
  <button class="color-item" data-color="绿色">绿色</button>
</div>
<!-- 尺码展示区域 -->
<div class="size-selector">
  <p>请选择尺码:</p>
  <div class="size-list"></div>
</div>
  • 第三步:实现交互逻辑
    给颜色选项绑定点击事件,点击后读取当前选中的颜色,取出对应尺码列表渲染到尺码区域,原生JS示例如下:
const colorItems = document.querySelectorAll('.color-item')
const sizeList = document.querySelector('.size-list')

colorItems.forEach(item => {
  item.addEventListener('click', () => {
    // 切换选中样式
    colorItems.forEach(el => el.classList.remove('active'))
    item.classList.add('active')
    // 获取当前选中颜色
    const selectedColor = item.dataset.color
    // 读取对应尺码列表
    const sizes = colorSizeMap[selectedColor]
    // 渲染尺码
    let sizeHtml = ''
    sizes.forEach(size => {
      sizeHtml += `<span class="size-item">${size}</span>`
    })
    sizeList.innerHTML = sizeHtml
  })
})
  • 第四步:补充选中状态样式
.color-item.active {
  border: 2px solid #2385bb;
  background: #e8f4fc;
}
.size-item {
  margin-right: 8px;
  padding: 4px 8px;
  border: 1px solid #ccc;
  border-radius: 4px;
}

如果是用Vue、React等前端框架开发,只需要把当前选中的颜色存为响应式变量,尺码列表通过响应式变量计算生成即可,无需手动操作DOM。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:48:02