从 DOM 中删除 HTML

Removing HTML from DOM

我必须使用 Google 跟踪代码管理器进行更改以临时修复某些问题,直到我获得对网站后端的访问权限。我正在尝试删除基于 class 的 div 容器。我已经能够使用以下代码成功创建自定义 HTML 标签来添加删除 div 容器,如下所示:

<script> 
function changeHtml () 
{ 
document.getElementsByClassName("signup")[0].style.display = "none"; 
} 
change = changeHtml(); 
</script>

问题是此 div 容器中的问题项是表单。我很快发现如果你应用 display: none;通过 css 表格仍然有效。删除它的真正方法是将其从 DOM 中删除。我尝试添加以下 JS 但没有成功:

<script>
const elem = document.getElementsByClassName('signup');
elem.parentNode.removeChild(elem);
</script>

接收错误:

Javascript 编译器错误:第 3 行错误,字符 1:此语言功能仅支持更好的 ECMASCRIPT6 模式:const 声明

您可以通过尝试此方法轻松实现此目的

<script>
  const elem = document.getElementsByClassName('signup')[0];
  elem.outerHTML = '';
</script>

使用remove()方法从DOM中删除所选元素:

<script>
  document.getElementsByClassName('signup')[0].remove();
</script>

截至目前,GTM 仅在自定义模板中支持 ES6,因此在自定义 javascript 标记中使用 const 会导致错误。您的描述有些笼统(“不起作用”),因此假设这是您的问题。此外,您的标签必须仅在您要删除的元素实际存在后执行(在 DOM 准备就绪时,或使用可见性触发器)。