Javascript错误“;无法读取属性";
我正在尝试将产品名称和价格动态添加到产品中。 代码如下:Javascript错误“;无法读取属性";,javascript,jquery,google-analytics,Javascript,Jquery,Google Analytics,我正在尝试将产品名称和价格动态添加到产品中。 代码如下: var dataLayer =[{ 'ecommerce': { 'purchase': { 'actionField': { 'id': 'T12345', 'affiliation': 'Online Store', 'revenue': '35.43', 'tax':'4.90', 'shipping': '5.99',
var dataLayer =[{
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345',
'affiliation': 'Online Store',
'revenue': '35.43',
'tax':'4.90',
'shipping': '5.99',
'coupon': 'SUMMER_SALE'
}
}
}
}];
但我得到一个错误“uncaughtypeerror:无法读取未定义的属性‘购买’”。
我希望数据层如下所示:
$('.to-buy').click(function() {
$('.sed').each(function() {
var product_name = $(this).find('h5').text();
var product_price = $(this).parent().siblings(".cost").text();
dataLayer.ecommerce.purchase.products.push({
"name" : product_name ,
"price" :product_price
});
});
});
任何帮助都可以接受。谢谢。您的
数据层
是一个数组,因此尝试访问数组的属性电子商务
会返回未定义的
。访问未定义的购买会引发异常
改用数据层[0]。电子商务
,或将数据层更改为如下对象:
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345',
'affiliation': 'Online Store',
'revenue': '35.43',
'tax':'4.90',
'shipping': '5.99',
'coupon': 'SUMMER_SALE'
},
'products': [{
'name': 'Triblend Android T-Shirt',
'price': '15.25'
},
{
'name': 'Donut Friday Scented T-Shirt',
'price': '33.75',
}]
}
}
进一步,您的数据层.ecommerce.purchase.products.push
正在purchace内部访问产品
,但我在您的数据层中没有看到任何产品
将属性产品
添加到数据层
对象
var dataLayer ={
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345',
'affiliation': 'Online Store',
'revenue': '35.43',
'tax':'4.90',
'shipping': '5.99',
'coupon': 'SUMMER_SALE'
}
}
}
};
您的
dataLayer
是一个数组,因此尝试访问数组的属性ecommerce
会返回undefined
。访问未定义的购买会引发异常
改用数据层[0]。电子商务
,或将数据层更改为如下对象:
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345',
'affiliation': 'Online Store',
'revenue': '35.43',
'tax':'4.90',
'shipping': '5.99',
'coupon': 'SUMMER_SALE'
},
'products': [{
'name': 'Triblend Android T-Shirt',
'price': '15.25'
},
{
'name': 'Donut Friday Scented T-Shirt',
'price': '33.75',
}]
}
}
进一步,您的数据层.ecommerce.purchase.products.push
正在purchace内部访问产品
,但我在您的数据层中没有看到任何产品
将属性产品
添加到数据层
对象
var dataLayer ={
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345',
'affiliation': 'Online Store',
'revenue': '35.43',
'tax':'4.90',
'shipping': '5.99',
'coupon': 'SUMMER_SALE'
}
}
}
};
有两个问题,第一个数据层是一个数组,所以您必须访问数据层的第一个元素。另一个是您必须在购买中创建产品属性
var dataLayer ={
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345',
'affiliation': 'Online Store',
'revenue': '35.43',
'tax':'4.90',
'shipping': '5.99',
'coupon': 'SUMMER_SALE'
},
products:[] // Your are missing this
}
}
};
或
上述两种方法中的任何一种都必须起作用。有两个问题,第一个是数据层,因此您必须访问数据层的第一个元素。另一个是您必须在购买中创建产品属性
var dataLayer ={
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345',
'affiliation': 'Online Store',
'revenue': '35.43',
'tax':'4.90',
'shipping': '5.99',
'coupon': 'SUMMER_SALE'
},
products:[] // Your are missing this
}
}
};
或
以上两项中的任何一项必须起作用表示数据层。电子商务未定义。如果你看它,数据层是一个数组…试试数据层[0]。电子商务。采购。产品。推送
dataLayer
是一个数组,在purchase
对象中没有products
属性,所以你必须先添加它,这意味着数据层。电子商务
是未定义的。如果你看一看,数据层是一个数组…试试数据层[0]。电子商务。采购。产品。推送dataLayer
是一个数组,在purchase
对象中没有products
属性,所以你必须先添加它