2016-11-15 8 views
0

私のHTMLコードから私のdataLayer(Googleタグマネージャー)にデータを取り込みたいと思います。Javascript DataLayer Fetchから

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変数に「フンを与えることです"価値と私はしようとしていた:

<script type="text/javascript"> 
    var lang_log = document.getElementsByClassName("portal")['data-place']; 
    dataLayer.push({ 
    "language_login":lang_log 
}) 
</script> 

しかし、それは動作していません。 アイデア


ありがとうございました。ありがとうございます。ありがとうございます。 JSがあるべき

+0

あなたはDOM型変数、属性名としてbody.portalと「データの場所」を探しセレクタとネイティブソリューションを試す可能性がある - これは、属性の値を返す必要がありますカスタムJSなし。 –

+0

ありがとう、私はこの1つを試してみよう! –

答えて

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>

+0

ありがとう!これは問題の答えです。私はそのデータの場所が実際にはデータ属性であることを忘れていました! –

0

は解決策を見つけた

<script type="text/javascript"> 
    var lang_log = document.getElementsByTagName("body")[0].getAttribute("data-locale"); 
    dataLayer.push({ 
    "language_login":lang_log 
}) 
</script> 

まだ最初のバージョンは動作しなかった理由に調査します!

関連する問題