如何在WordPress现有代码中移除class内的mylogin类值?
问题原因
- 仅声明了
myFunction函数,没有执行该函数,类移除逻辑从未触发 - 若脚本输出位置在目标
<div>元素之前,直接执行代码会因DOM尚未渲染完成,无法找到#my-checkout元素导致操作失效
正确实现方案
方案1:DOM加载完成后自动移除类(无需手动触发)
直接监听DOM加载完成事件,自动执行移除逻辑,是最常用的实现方式:
<?php echo '<script>'; echo 'document.addEventListener("DOMContentLoaded", function() {'; echo ' var targetEl = document.getElementById("my-checkout");'; // 增加元素存在判断,避免元素不存在时抛出JS错误 echo ' if (targetEl) {'; echo ' targetEl.classList.remove("mylogin");'; echo ' }'; echo '});'; echo '</script>'; ?>
方案2:保留手动触发逻辑
如果你需要在特定交互场景(比如点击按钮、提交表单)下才触发类移除,可以保留函数定义,同时补充触发逻辑即可:
- 保留原有函数定义
- 给触发元素绑定事件,比如给按钮添加
onclick="myFunction()"属性即可触发执行
兼容Elementor渲染场景
如果上述方案仍不生效,是因为Elementor元素可能存在动态渲染延迟,可将监听事件替换为页面全资源加载事件:
把document.addEventListener("DOMContentLoaded", function() {替换为window.addEventListener("load", function() {即可。
内容的提问来源于stack exchange,提问作者isbe
相关产品推荐
相关产品推荐

