如何在Tag Manager中获取任意点击图片的alt属性?
需求说明
我当前使用的代码如下:
function () { if (document.querySelector("#wrapper > section.panel.spacer--banner.bg--banner.flex-column.first > div > div > div.col-lg-5 > div > ul > li:nth-child(1) > a > img").onclick = true) { return "playstore"; } else if (document.querySelector("#wrapper > section.panel.spacer--banner.bg--banner.flex-column.first > div > div > div.col-lg-5 > div > ul > li.d-none.d-xl-block > button").onclick = true) { return "appstore"; } else { return ""; } }
现需在Tag Manager中追踪事件时,获取网页内任意被点击图片的alt属性作为事件参数,请求对应的JavaScript代码。
解决方案
可以在Tag Manager中创建一个自定义JavaScript变量,使用以下代码来获取被点击图片的alt属性:
function() { var clickedElement = {{Click Element}}; // 向上遍历DOM,找到最接近的img元素 while (clickedElement && clickedElement.tagName !== 'IMG') { clickedElement = clickedElement.parentNode; } // 返回alt属性值,无图片则返回空字符串 return clickedElement ? clickedElement.alt.trim() : ''; }
关键说明
- 依赖Tag Manager内置的
{{Click Element}}变量,它会返回触发点击事件的具体元素 - 遍历DOM的逻辑确保即使点击的是图片的父容器(如
<a>、<div>),也能定位到对应的<img>标签 - 调用
trim()去除alt属性值两端的空白字符,保证参数格式整洁
内容的提问来源于stack exchange,提问作者Shara
相关产品推荐
相关产品推荐

