我正在尝试抓取被点击的文本。我有一个案例,在同一个类下定义了两个不同的链接,我需要确定点击了哪个链接
<div class="block pdp-estimate-quote">
<ul>
<li>
<a href="#">Estimate Payment</a>
</li>
<li>
<a href="#">Get a Quote</a>
</li>
</ul>
</div>
当有人使用链接文字作为描述点击任一链接时,我想抛出GA事件。以下代码抛出一个事件,但它显示了两个链接的文本,而不仅仅是单击的链接。
$('.pdp-estimate-quote a').click(function(){
var ctatext = $(this).closest(".pdp-estimate-quote").find('a').text();
dataLayer.push({ 'event':'event', 'eventCategory': 'Get Quote', 'eventAction':ctatext, 'eventLabel':{{url path}} })
});
答案 0 :(得分:5)
我可能会在你的问题上遗漏一些东西,但是为了获得当前元素的文本,你只需要做
var ctatext = $(this).text();
所以完整的功能将是
$('.pdp-estimate-quote a').click(function(){
var ctatext = $(this).text();
dataLayer.push({ 'event':'event', 'eventCategory': 'Get Quote', 'eventAction':ctatext, 'eventLabel':{{url path}} })
});
答案 1 :(得分:3)
因为您正在查看父元素而不是单击的元素。
var ctatext = $(this).closest(".pdp-estimate-quote").find('a').text();
应该是
var ctatext = $(this).text();
答案 2 :(得分:1)
在事件处理程序中,this
指的是触发事件的元素。因此,在单击处理程序中,this
是单击的DOM元素。
var ctatext = $(this).text();