Google代码管理器 - 在javascript变量中获取元素的父级

时间:2017-06-01 18:54:54

标签: javascript google-tag-manager

在自定义javascript变量中,如何获取被点击元素的父元素?

<div>
    <h2>Lorem Ipsum</h2>
    <a href="#"></a>
</div>

例如,当我点击<H2>以点击<a>时记录Lorem Ipsum时,我想获取<a>的内容。

3 个答案:

答案 0 :(得分:1)

似乎Click Element变量在这里工作得很好。这很奇怪,我在''中使用它并且它只返回了url。但你可以像使用它一样使用它

function(){
    var title = jQuery({{Click Element}}).parent().find('h2').html();

    return title;
}

答案 1 :(得分:1)

我知道这是一个较旧的问题,但在我自己搜索这个问题时,我发现this really helpful link有一个解决方案。

您可以添加自定义变量。要执行此操作,请在Google代码管理器中转到Variables,在User-Defined Variables下点击New。选择Variable Type的{​​{1}},将其命名为Custom JavaScript,然后输入以下代码:

Find Closest

为您的特定情况添加另一个JavaScript变量。类似的东西:

function() {
  return function(target, selector) {
    while (!target.matches(selector) && !target.matches('body')) {
      target = target.parentElement;
    }
    return target.matches(selector) ? target : undefined;
  }
}

注意:您可以为较早的浏览器添加function() { var parentElement = {{Find Closest}}({{Click Element}}, 'div'), childElement = typeof parentElement !== 'undefined' ? parentElement.querySelector('h2') : undefined; return typeof childElement !== 'undefined' ? childElement.innerText : undefined; } 的填充。

答案 2 :(得分:-2)

使用Jquery,你可以做这样的事情

$('a').click(function(){
 var h2Content = $(this).siblings('h2').text();
 console.log(h2Content);
});

请注意,此代码将在所有标记上放置一个click事件处理程序。