如何在Google Tag Manager中仅提取包含特定关键词的CSS类名片段?
如何在Google Tag Manager中仅提取包含特定关键词的CSS类名片段?
嘿,我来帮你梳理这个问题的解决思路和最终方案!
你遇到的场景是:有个元素的类名是aa bb blog-xxx,想通过Google Tag Manager只提取出包含blog关键词的那个类片段blog-xxx,最开始你写的函数会返回整个类名字符串aa bb blog-xxx,这显然不是你想要的结果对吧?
好在你已经自己摸索出了可行的方案,我再帮你拆解下这个代码的逻辑:
function() { var el = {{Click Element}}; var regex = /blog.*/; var classes = el.className.match(regex); return classes; }
- 首先用
{{Click Element}}获取到被点击的DOM元素,比直接用类名字符串更可靠; - 然后用正则表达式
/blog.*/匹配从blog开头到类名末尾的所有内容,刚好能定位到你要的blog-xxx片段; - 最后通过
match()方法拿到匹配结果返回就行。
这里再给你提个小优化建议:如果你的元素类名是aa blog-xxx cc这种(blog类后面还有其他类),那/blog.*/会把blog-xxx cc都匹配出来。如果想精准只匹配单个带blog的类,可以把正则改成/(?:^|\s)blog\S*/,这样就能匹配从开头或者空格后的blog开头的单个完整类名,不会多带其他类。当然,你自己的代码已经能满足当前的需求啦,这个优化是给你应对更复杂场景的备选方案~
备注:内容来源于stack exchange,提问作者Peter Wong
相关产品推荐
相关产品推荐

