我试图在DTM数据元素的自定义脚本中使用jQuery捕获HTML文本值。
参见情景:
以下是页面上的代码片段:
<div class="site-categories">
<ul>
<li class="mobile-tablets main">
<a href="/mobiles.html" class="mobile-tablets" style="background-position"> Mobiles & Tablets </a>
<a href="/computers.html" class="computers" style="background-position"> Computers </a>
<a href="/electronics.html" class="electronics" style="background-position"> Electronics </a>
等等。
所以基本上问题是捕获锚标记的内部HTML文本,即'Mobiles&amp;平板电脑'或'计算机'或'电子',取决于用户点击的链接。
为了实现这一点,在基于事件的规则部分中,我将条件设置为要在类(在div标签下)等于'site-categories'并在子元素上启用冒泡时触发的标记(以便覆盖此下的所有内容)消灭omniture标签)。然后在任何evar变量中分配data元素的值。
在数据元素部分,选择自定义脚本选项后,我正在编写此代码:
var value = $('this').html();
返回值;
或
var value = jQuery('this').html();
返回值;
但这不起作用。我甚至试过用这个:
var value;
_satellite.setVar('value', jQuery('this').html());
返回值;
但这也行不通。我能解决这个问题吗?我希望它是动态的,根据用户点击页面的哪个部分,数据元素应该捕获该特定锚标记的内部HTML文本。
不确定我哪里出错了。 如果有任何其他解决方案,请告诉我。那将是一个很大的帮助。
提前致谢,
阿迪
答案 0 :(得分:2)
几个笔记:
首先在旁注中,在您的jQuery代码中,this
不应该用引号括起来。您应该将对象引用传递给jQuery包装器。将其包装在引号中会使其查找名为“this”的html元素(例如<this>foobar</this>
),这是不正确的。
关于你的问题..不确定你是如何设置规则的,但基本上你想要做的是获取值并将其放入数据元素,然后在设置Adobe Analytics变量时引用数据元素。所以看起来你走在了正确的轨道上,BrettAHale的答案也在正确的轨道上,但要把它们放在一起:
在您的规则中,添加条件为Data > Custom
的条件。然后单击“添加条件”并在代码框中输入:
_satellite.setVar('linkText', jQuery(this).text());
return true;
这将设置一个名为“linkText”的数据元素,并返回true以确保条件始终为true。您可以使用“值”作为名称,但您应该使用更具描述性的内容,以便以后更容易记住它的用途(我使用“linkText”)。
然后,在规则的Adobe Analytics部分中,转到eVars部分,然后选择要设置的eVar。然后,对于“设为”值,请输入%linkText%
。这是对您刚在规则中设置的数据元素的引用。如果DTM显示未找到的工具提示或w / e,请不要担心;它只显示/搜索您在界面中设置的已知数据元素,而不是在规则中即时搜索。点击“保存evar”按钮,你会看到例如列出eVar3="%linkText%"
(但是对于您选择的任何eVar)。
保存然后测试/发布规则。
答案 1 :(得分:0)
在分析工具部分或您的规则中,使用以下内容设置eVar,而不是数据元素。
%this.text%
你的evar盒子会显示这样的东西。 eVarX = “%this.text%”