Менеджер тегов Google - Получить родительский элемент в переменной javascript

1

В пользовательской переменной javascript, как вы можете получить родительский элемент элемента clicked?

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

Например, я хочу пойти получить содержание <H2>, когда я нажимаю <a> войти Lorem Ipsum, когда <a> нажат.

Теги:
google-tag-manager

3 ответа

1

Я знаю, что это старый вопрос, но, ища эту точную проблему, я нашел эту полезную ссылку с решением.

Вы можете добавить пользовательские переменные. Для этого в Диспетчере тегов Google перейдите в Variables, в разделе " User-Defined Variables нажмите " New. Выберите Variable Type of Custom JavaScript, назовите его Find Closest и пропустите следующий код:

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

Добавьте еще одну переменную JavaScript для вашего конкретного случая. Что-то вроде:

function() {
    var parentElement = {{Find Closest}}({{Click Element}}, 'div'),
        childElement = typeof parentElement !== 'undefined' ? parentElement.querySelector('h2') : undefined;
    return typeof childElement !== 'undefined' ? childElement.innerText : undefined;
}

Примечание. Вы можете добавить полипол для matches для более старых браузеров.

0

Кажется, переменная Click Element отлично работает здесь. Это было странно, я использовал его в '', и это заставило его вернуть только URL. Но вы можете использовать его как

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

    return title;
}
-3

С помощью JQuery вы можете сделать что-то вроде этого

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

Будьте осторожны, этот код поместит обработчик события клика на все теги.

  • 0
    Это в Google Tag Manager. Вы не можете связать клик заранее.
  • 0
    Это не правда. Вы можете связать через пользовательский HTML. Однако лучше всего получить значение с помощью jquery и элемента click, как вы ответили.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню