我发现此Google跟踪代码管理器宏脚本(http://viget.com/advance/gtm#elementclass)用于识别元素的父级是否具有特定的类值。
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 :(得分:0)
您无法使用规则指定要搜索的父类名称,但您可以使用宏。
例如,如果你想让上面的宏代码保持通用,以便它可以使用任何替代类名,你就可以这样写:
function crawlByClassName () {
var el = {{element}};
while (el && el !== document.body && el.className !== '{{parent class}}') {
el = el.parentElement;
}
return el.className === '{{parent class}}';
然后,您可以创建一个名为“父类”的宏,并将值设置为您要查找的类名。如果要根据不同的条件设置父类的名称,可以使用查找表宏类型。
答案 1 :(得分:0)
谢谢@kevintechie。你的方法可能会奏效。
我能够在这里找到另一种方式https://plus.google.com/100582165749296472339/posts/fa6iKeuF6ig
我可以将它用作宏:
function() {
return {{element}}.parentElement.className;
}
然后在规则中指定类名。这意味着每个班级只有一个宏而不是一个。