如何在CSS选择器中使用OR逻辑匹配Pardot表单隐藏字段?
解决GTM脚本匹配多个Pardot隐藏字段的问题
CSS选择器的OR逻辑用法:你提到的
||不是CSS选择器的语法,要匹配多个不同name值的字段,直接用逗号分隔多个属性选择器即可,示例如下:// 匹配name为859253_16342pi_859253_16342 或 859253_16342pi_859253_16343的字段 const targetFields = document.querySelectorAll('input[name="859253_16342pi_859253_16342"], input[name="859253_16342pi_859253_16343"]');这种写法能一次性选中所有符合条件的隐藏字段。
更灵活的匹配方式(推荐):观察你给出的name格式,它们有共同前缀
859253_16342pi_859253_,可以用属性前缀匹配简化选择器,不用逐个写全name值:// 匹配name以859253_16342pi_859253_开头的所有input字段 const targetFields = document.querySelectorAll('input[name^="859253_16342pi_859253_"]');这种方式能自动匹配所有同前缀的字段,后续新增同格式的字段也不用修改脚本。
填充字段的完整脚本示例:拿到匹配的字段后,循环赋值即可:
// 从GTM变量获取session_url_campaign的值 const campaignValue = {{session_url_campaign}}; // 匹配目标隐藏字段 const targetFields = document.querySelectorAll('input[name^="859253_16342pi_859253_"]'); // 给每个匹配到的隐藏字段赋值 targetFields.forEach(field => { if (field.type === 'hidden') { field.value = campaignValue; } });
内容的提问来源于stack exchange,提问作者Xavier Wallach
相关产品推荐
相关产品推荐

