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

点击div获取元素data属性并动态修改按钮跳转链接问题求助

问题排查&修复

原代码错误点

  • 事件绑定到父容器#product后,this指向的是父容器本身,不是你点击的A/B/C子元素,无法获取子元素的自定义属性
  • 原生JS读取data-*属性的语法错误:不能直接写this.data-product,带横杠的属性名不能直接用点运算符调用,会被JS解析为减法运算,直接触发语法错误
  • 没有做点击事件的目标判断,点到父容器内其他非选项区域也会触发逻辑,会拿到无效的空值

修复方案1:原生JS实现

document.getElementById("product").addEventListener('click', function(e) {
  // 仅点击A/B/C选项时才执行逻辑
  if(e.target.classList.contains('items-uniqueItem')) {
    const productVal = e.target.dataset.product
    const idVal = e.target.dataset.id
    document.getElementById("purchase").href = `/?add-to-cart=${productVal}&variation_id=${idVal}`
    // 如果原规则要求参数末尾加斜杠,把上一行末尾改成`/?add-to-cart=${productVal}&variation_id=${idVal}/`即可
  }
})

修复方案2:使用页面已引入的jQuery实现,代码更简洁

$('#product').on('click', '.items-uniqueItem', function() {
  $('#purchase').attr('href', `/?add-to-cart=${$(this).data('product')}&variation_id=${$(this).data('id')}`)
})

验证方式

点击对应A/B/C元素后,右键检查购买按钮,查看href属性是否已经替换为对应参数的链接即可确认是否生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:27:04