Quiero capturar todos estos elementos con una variable GTM para poder enviar todos los nombres de productos a Google Analytics cada vez que una persona ingrese a esta sección del sitio.
Intenté usar la variable del elemento DOM, una variable JS con document.getElementByClassName y document.querySelector y querySelectorAll, sin embargo, todos estos devuelven el valor nulo. No tengo tanta experiencia con JS, ¿qué estoy haciendo mal?
Gracias de antemano :^)
Editar:
Hice un clon de tu foto. Puede ver que hay 3 elementos en la página.
Uso la función grabNames` para devolver una matriz de los nombres de estos 3 elementos.
Por lo tanto, puede copiar la función grabNames en su página javascript personalizada de GTM.
function grabName() { var elems = document.querySelectorAll('.name'); // return elements class = name var prodctList = []; // make a new array for (let i = 0; i < elems.length; i ++) // loop entire elems and push each elem name to the list prodctList.push(elems[i].innerText); return prodctList; // return array } var arr = grabName(); console.log(arr) .details { margin-bottom: 15px; padding: 5px; border: 1px solid black; } <div class="details"> <div class="summary"> <div class="summary__item"> <a class="name"> prodct name 1 </a> </div> </div> </div> <div class="details"> <div class="summary"> <div class="summary__item"> <a class="name"> prodct name 2 </a> </div> </div> </div> <div class="details"> <div class="summary"> <div class="summary__item"> <a class="name"> prodct name 3 </a> </div> </div> </div>No estoy seguro de cómo escribiste tu código. algun mensaje de error?
Creo que el siguiente código debería funcionar
document.getElementByClassName('name'); // or document.querySelectorAll('.name');Puedes ver estas publicaciones: