我想将HTML代码中的数据提取到我的dataLayer(Google跟踪代码管理器)中。
html代码是这样的:
<body class="portal sessions" data-place="hun">...</body>
Javascript代码是这样的:
<script type="text/javascript">
var lang_log = document.getElementsByClassName("portal");
dataLayer.push({
"language_login":lang_log
})
</script>
我要尝试的是给lang_log变量“hun”值,我会尝试:
<script type="text/javascript">
var lang_log = document.getElementsByClassName("portal")['data-place'];
dataLayer.push({
"language_login":lang_log
})
</script>
但它不起作用。 有什么想法吗?
任何帮助或建议都会提前,谢谢你。
答案 0 :(得分:1)
document.getElementsByClassName("portal")
返回一个类似数组的元素集合。
您可以使用document.getElementsByClassName("portal")[0]
获取此集合的第一个元素。
要access the data attribute,请使用document.getElementsByClassName("portal")[0].dataset.place
。
var AdataLayer = [];
var lang_log = document.getElementsByClassName("portal")[0].dataset.place;
AdataLayer.push({
"language_login":lang_log
})
console.log(AdataLayer);
console.log(AdataLayer[0].language_login);
<body class="portal sessions" id="portal" data-place="hun">...</body>
答案 1 :(得分:0)
找到解决方案:
JS应该是:
<script type="text/javascript">
var lang_log = document.getElementsByTagName("body")[0].getAttribute("data-locale");
dataLayer.push({
"language_login":lang_log
})
</script>
仍在调查为什么第一个版本不起作用!