В пользовательской переменной javascript, как вы можете получить родительский элемент элемента clicked?
<div>
<h2>Lorem Ipsum</h2>
<a href="#"></a>
</div>
Например, я хочу пойти получить содержание <H2>
, когда я нажимаю <a>
войти Lorem Ipsum, когда <a>
нажат.
Я знаю, что это старый вопрос, но, ища эту точную проблему, я нашел эту полезную ссылку с решением.
Вы можете добавить пользовательские переменные. Для этого в Диспетчере тегов 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
для более старых браузеров.
Кажется, переменная Click Element отлично работает здесь. Это было странно, я использовал его в '', и это заставило его вернуть только URL. Но вы можете использовать его как
function(){
var title = jQuery({{Click Element}}).parent().find('h2').html();
return title;
}
С помощью JQuery вы можете сделать что-то вроде этого
$('a').click(function(){
var h2Content = $(this).siblings('h2').text();
console.log(h2Content);
});
Будьте осторожны, этот код поместит обработчик события клика на все теги.