You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Tag Manager中为Schema创建遍历多演员数据的循环函数

问题根因

GTM内置的DOM元素变量默认仅返回CSS选择器匹配到的第一个元素的对应值,即使你在循环里多次调用,也只会重复返回第一个匹配项的内容,这就是你所有条目数据相同的原因。不要通过预定义的DOM变量获取多条重复结构的列表数据,直接在自定义HTML标签中用原生JS遍历DOM生成数组即可。

完整实现代码

直接替换你原来的Schema代码即可,代码会自动遍历页面所有匹配的导演、演员节点生成对应数组:

<script type="application/ld+json">
{
  "name": "{{post eletitle}}",
  "url": "{{Page URL}}",
  "sameAs": [],
  "dateCreated": ["{{post modified time}}"],
  "image": {
    "width": "{{post image width}}",
    "height": "{{post image height}}",
    "url": "{{post image}}",
    "@context": "http://schema.org",
    "@type": "ImageObject"
  },
  "description": "{{post description}}",
  "keywords": "master movie rating, Tamil Movie, tamil movie box office report",
  // 动态生成导演数组
  "director": (function(){
    var directors = [];
    // 可根据实际DOM结构调整选择器
    var directorUrlNodes = document.querySelectorAll('li .movie-director-url');
    var directorNameNodes = document.querySelectorAll('li .movie-director-name');
    for(var i=0; i<directorUrlNodes.length; i++){
      if(directorNameNodes[i]){
        directors.push({
          "url": directorUrlNodes[i].href,
          "name": directorNameNodes[i].textContent.trim(),
          "@context": "http://schema.org",
          "@type": "Person"
        })
      }
    }
    return directors;
  })(),
  // 动态生成演员数组
  "actor": (function(){
    var actors = [];
    // 可根据实际DOM结构调整选择器
    var castUrlNodes = document.querySelectorAll('a.movie-cast-url');
    var castNameNodes = document.querySelectorAll('span.movie-cast-name');
    for(var i=0; i<castUrlNodes.length; i++){
      if(castNameNodes[i]){
        actors.push({
          "url": castUrlNodes[i].href,
          "name": castNameNodes[i].textContent.trim(),
          "@context": "http://schema.org",
          "@type": "Person"
        })
      }
    }
    return actors;
  })(),
  "@context": "http://schema.org",
  "@type": "Movie"
}
</script>
注意事项
  • 如果你页面的导演、演员节点有共同的父级容器,建议在选择器前加上父容器的类名缩小匹配范围,比如.movie-detail a.movie-cast-url,避免匹配到页面其他区域的同class元素
  • 部署前可以在GTM预览模式下,打开浏览器控制台打印生成的director、actor数组,确认数据匹配正确后再正式发布
  • 若页面演员/导演名字存在双引号等特殊字符,可在textContent后加.replace(/"/g, '&quot;')避免JSON格式错误

内容的提问来源于stack exchange,提问作者mrpuyal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:45:01