2014-10-18 136 views
1

我發現此Google跟蹤代碼管理器宏腳本(http://viget.com/advance/gtm#elementclass),用於標識元素的父級是否具有特定的類值。Google跟蹤代碼管理器中的父類

function crawlByClassName() { 
var el = {{element}}; 

while (el && el !== document.body && el.className !== 'INSERT CLASS NAME') { 
    el = el.parentElement; 
} 

return el.className === 'INSERT CLASS NAME'; 
} 

有沒有辦法修改它來記錄值,然後使用規則來指定名稱?或者有沒有不同的方式來實現這一目標?

回答

0

謝謝@kevintechie。你的方法可能工作。

我能在這裏找到另一種方式https://plus.google.com/100582165749296472339/posts/fa6iKeuF6ig

我可以用這個作爲宏:

function() { 
return {{element}}.parentElement.className; 
} 

然後指定規則的類名。這意味着每個班級只有一個宏而不是一個宏。

+0

請記住這兩個宏之間的差異:OP中的宏將搜索所有父元素的類名稱。只有當它存在時,此宏纔會返回直接父級的類名稱。 – kevintechie 2014-10-19 16:53:01

0

您不能使用規則指定要搜索的父類名稱,但可以使用宏。

例如,如果你的魔杖,以保持上述宏代碼通用的,所以它會與任何替代類名的工作,你可以這樣寫:

function crawlByClassName() { 
 
    var el = {{element}}; 
 
    
 
    while (el && el !== document.body && el.className !== '{{parent class}}') { 
 
     el = el.parentElement; 
 
    } 
 
    
 
    return el.className === '{{parent class}}';

然後,你可以創建一個名爲「父類」的宏,並將該值設置爲想要查找的類名稱。如果您想根據不同的條件設置父類的名稱,則可以使用查找表宏類型。