0

クリックされたテキストを取得しようとしています。同じクラスで 2 つの異なるリンクが定義されている場合があり、どちらのリンクがクリックされたかを識別する必要があります。

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

3 に答える 3

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}}  }) 
});
于 2013-08-13T20:10:01.690 に答える
3

クリックされた要素ではなく、親要素を見ているためです。

var ctatext = $(this).closest(".pdp-estimate-quote").find('a').text();

する必要があります

var ctatext = $(this).text();
于 2013-08-13T20:10:13.880 に答える
1

イベント ハンドラーでthisは、イベントが発生した要素を参照します。したがって、クリック ハンドラーでthisは、クリックされた DOM 要素です。

var ctatext = $(this).text();
于 2013-08-13T20:10:58.343 に答える