如何获取标签的文本

时间:2013-08-13 20:07:41

标签: javascript jquery

我正在尝试抓取被点击的文本。我有一个案例,在同一个类下定义了两个不同的链接,我需要确定点击了哪个链接

<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}}  }) 
});

3 个答案:

答案 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();