我想在 Adobe Launch 中使用 Data Elements 的自定义代码来获取单击元素的父元素的文本值。
我使用了 $(this).parents('h3').text()方法,但是当我使用调试工具检查时,没有正确收集文本值。 Adobe Launch 中数据元素的自定义代码
但是,当我检查页面内的控制台时,我可以看到文本值通过该方法存在。
Adobe Launch 是否不支持该方法?那么如何获取被点击元素的父元素或子元素的属性值呢?
我想在 Adobe Launch 中使用 Data Elements 的自定义代码来获取单击元素的父元素的文本值。
我使用了 $(this).parents('h3').text()方法,但是当我使用调试工具检查时,没有正确收集文本值。 Adobe Launch 中数据元素的自定义代码
但是,当我检查页面内的控制台时,我可以看到文本值通过该方法存在。
Adobe Launch 是否不支持该方法?那么如何获取被点击元素的父元素或子元素的属性值呢?
事件和元素对象都不会在内部传递给数据元素 (DE)。如果您希望能够在 DE 中引用这些东西,那么您可以让 DE 返回一个函数,这样您就可以像调用函数一样调用它并将其作为参数传递。
例子:
数据元素名称: getClickedElementText
自定义代码:
return function(ev) {
var ev = ev || {};
var elem = ev.target || {}:
return $(elem).parents('h3').text();
}
然后在您的规则中,在自定义代码框中(例如,在条件中,或在操作自定义代码框中,未标记为全局范围),您可以执行以下操作:
var text = _satellite.getVar('getClickedElementText')(event);
请注意,由于此 DE 正在返回一个函数,因此您不能在规则的内置文本字段中引用它。
如果您希望能够%dataelement%
在 UI 文本字段中使用,那么您必须将代码放在规则框内的代码框中(同样,不是全局范围的)以设置临时 DE。例如,在规则条件自定义代码框中:
var elem = event.target;
var text = $(elem).parents('h3').text();
_satellite.setVar('clickedElementText',text);
然后您可以%clickedElementText%
在 UI 文本字段中使用语法。请注意,由于您正在像这样即时创建临时 DE,它不会显示在下拉搜索提示中。