首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个数据只显示一个数据,当访问每个数据时,结果是未定义的。

每个数据只显示一个数据,当访问每个数据时,结果是未定义的。
EN

Stack Overflow用户
提问于 2021-12-08 04:01:37
回答 2查看 70关注 0票数 2

我有一个产品div,它包含data-product属性,它的值是object。我想把产品数据放到gtag中。

但是为什么我每次做的时候,只有一个数据?当我想访问data.iddata.name时,为什么它是未定义的?

代码语言:javascript
复制
$(document).ready(function(){
  const promotions = []
  
    $(".product-item").each(function(){
    const data = $(this).data('product');
    
    promotions.push({
      "id": data.id,
      "name": data.name
    })
  })
  
  //gtag('event', 'view_promotion', {
    //promotions
  //});
  
  $('.product-item').each(function(){
    $(this).on("click", function(e){
      const data = $(this).data('product')
      console.log(data)
    })
  })
})
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="product-item" data-product='{"id" : 123, "name" : "Product 1"}'>
  Product 1
</div>
<div class="product-item" data-product='{"id" : 124, "name" : "Product 2"}'>
  Product 2
</div>
<div class="product-item" data-product='{"id" : 125, "name" : "Product 3"}'>
  Product 3
</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-08 04:15:34

根据API接口,属性值必须是一个有效的JSON,包括引用的属性名称。

在您的示例中,它没有正确地格式化为JSON,因此它无法工作。将data-product格式为有效的JSON。

一旦修复了JSON,就可以循环升级

代码语言:javascript
复制
$(document).ready(function(){
  let promotions = []
  $(".product-item").each(function(){
    const data = $(this).data('product');
        
    promotions.push({
      "id": data.id,
      "name": data.name
    })
  })
      
           
  gtag('event', 'view_promotion', {
    promotions
  });
})
票数 0
EN

Stack Overflow用户

发布于 2021-12-08 04:13:54

更改HTML代码,适用于我:

代码语言:javascript
复制
<div class="product-item" data-product='{"id":124,"name":"Product 1"}'>
    Product 1
</div>
<div class="product-item" data-product='{"id":125,"name":"Product 2"}'>
    Product 2
</div>
<div class="product-item" data-product='{"id":126,"name":"Product 3"}'>
    Product 3
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70269787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档