从 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 准备就绪时,或使用可见性触发器)。
我必须使用 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 准备就绪时,或使用可见性触发器)。