2016-06-23 7 views
-1

Was ich versuche zu erreichen ist zu finden, wenn das Klick-Element ein h2 Tag hat, wenn nicht, dann zum Elternteil gehen und die gleiche Prüfung durchführen, bis ein Wert ist gefunden und den Wert zurückgeben.GTM/Javascript - Suche nach DOM um Eltern zu finden h2

Wenn auf den Link href geklickt wird, muss Google Tag Manager den übergeordneten Text h2 als Variable festlegen, damit er im Ereignis-Tracking verwendet werden kann.

Edit: Ich kann jQuery-Code für diese Entschuldigung nicht verwenden.

Hier ist ein Auszug aus dem HTML-Code;

<div id="contentRight" class="right"> 
 
    <div class="widget blue"> 
 
     <h2>Link Title</h2> 
 
    <div style="clear:both;"> 
 
     <a href="https://www.websitelink.com" class="buttonOrange" target="_self" >Find out more 
 
     <i class="fa fa-chevron-right" aria-hidden="true"></i> 
 
     </a> 
 
    </div> 
 
    </div> 
 
</div> 
 

Nach ein paar Stunden zu verbringen alle über das Internet an verschiedenen Posten suchen, ich habe zur Zeit einen Brei aus Code, der nicht funktioniert;

function(){  
    var element = {{Click Element}}; 
    while(element.querySelector('h2').innerText === undefined); 
{ 
    element = element.parentNode; 
} 
return element.querySelector('h2').innerText;} 

Kann jemand etwas Licht auf das, was ich falsch mache, werfen, oder einen Vorschlag machen, wie dies getan werden kann?

Antwort

0

Sie scheinen auf eine peinliche Art und Weise zu gehen, aber wenn ich Ihre Frage verstehe, was Sie suchen, ist der Text für jeden Link, der ein Kind dieses Elements ist. Also, vorausgesetzt, Sie haben jQuery geladen wird, würde t einen einfachen benutzerdefinierten JS-Tag erfordert, die so aussehen würde:

function(){ 
    var ce = {{Click Element}}; 
    return $(ce).closest('#contentRight').find('h2').text().trim() 
} 

, dass der Titel für den Link zurückgeben soll, dh. "Linktitel"

+0

Vielen Dank für Ihre Antwort, aber leider wird jQuery in diesem Fall nicht verwendet. Gibt es eine JavaScript-Alternative zum jQuery-Code? – Jayse

+0

Leider ist diese Frage geschlossen, aber die angegebenen Links sollten Ihnen helfen, das benutzerdefinierte JS ohne jQuery zu implementieren. – nyuen

Verwandte Themen