在 GTM 中替换 div 内的文本

Replacing a text inside of a div in GTM

与此类似 我想更改动态 div 中的一些文本。那里的解释对我不起作用,所以我开始了一个新线程(rep 太低无法评论)。使这个 div “动态”的是一些脚本,它计算您需要花费多少钱(基于添加到购物车的商品)才能获得免费送货。我要替换的语句始终存在。我想你可以称之为擦除文本的一部分。 :)

我的div:

<div class="free-shipping__content">Brakuje Ci 151,00&nbsp;zł do darmowej dostawy (Paczkomaty InPost).</div>

我在 GTM 中的代码(加载 DOM 就绪):

<script type="text/javascript">
(function(){
  var elements = document.querySelectorALL(".free_shipping__content");    
  for (i = 0; i < elements.length; ++i) {
    var str = elements[i].innerHTML;
    elements[i].innerHTML = str.replace(" (Paczkomaty InPost)", "");
}
})();
</script>

谢谢!

Image of surrounding divs

  1. 闭包做得很好。

  2. document.querySelectorALL 不是函数。你是说 document.querySelectorAll.

  3. 另一个问题是您的 css 选择器。您使用的是 .free_shipping__content 而实际的 class 名称不同。您的选择器应该是 .free-shipping__content

在这些修复之后,您的代码可以正常工作。但是,我已经重写了它以正确测试,所以我不妨提供一个更具可读性和优雅的解决方案:

document.querySelectorAll(".free-shipping__content").forEach(function (el) {
  el.innerHTML = el.innerHTML.replace(" (Paczkomaty InPost)", "");
});