在另一个GTM JavaScript变量中返回GTM JavaScript变量(数组)的总和

时间:2015-12-21 14:42:23

标签: javascript jquery google-tag-manager

这是我在这个网站上的第一个问题,我很好奇是否有人可以帮助我。在Google跟踪代码管理器中,我尝试使用一些jQuery设置自定义JavaScript变量,该变量应该返回特定数组中所有产品价格的总和。

在下面的代码中,我返回增强型电子商务数据层中的所有产品价格。在GTM中,我将此变量称为“{{product price}}”。

function() {

var itemsInC = {{ecommerce.checkout.products}};

itemsincart = [];

for (var i = 0;i < itemsInC.length;i++) {

          priceincart.push(itemsInC[i].price);

    }

return priceincart;

}

上面的代码实际上有效,例如返回一个值:['9.99','21 .95','34 .99']。

在第二段代码中,我尝试总结GTM变量“{{product price}}”中所有返回值的总和。但是,下面的代码无法正常工作。我怎样才能在下面的脚本中返回上面脚本的总值?

这是我到目前为止所创造的:

function() {

    var total = $("{{product price}}").each(function() {

                0 += parseInt($(this).val(), 10);

    }

return total;

}

提前致谢!

亲切的问候,

2 个答案:

答案 0 :(得分:0)

假设您正在使用上面的确切代码,那么您会遇到一些语法错误。

  1. 您不需要在引号中包装GTM变量
  2. 不要使用parseInt,因为它只返回一个整数。使用&#34;数字&#34;代替。
  3. 你遗漏了一个支架
  4. 所以你应该使用这样的东西:

    function(){
       var total = 0;
       $({{product price}}).each(function(){
          total += Number(this);
       })
       return total;
    }
    

答案 1 :(得分:0)

我不知道回答我自己的问题是否正常,但我用以下代码解决了上述问题:

function() { var total = 0; for (var i = 0; i < {{product price}}.length; i++)
{ total += {{product price}}[i] << 0; } return total + ".00"; }