我在我的子主题中创建了一个js文件,其中包含以下代码
const prID = "10496";
const EL_prID = document.querySelector(`[data-product-id="${prID}"]`);
if (EL_prID) {
EL_prID.parentNode.classList.add('is-hidden');}
我使用一个插件在页面的头部注入代码:我在头部添加了我的js文件的url。
我添加了Css代码:.is-hidden:{display:none;}
当我检查调试器时,js文件出现在头文件中。但是我的html元素并没有像它应该的那样被隐藏。
我的错误在哪里?我应该在我的javascript文件中在代码之前和之后添加应答器吗?
谢谢
发布于 2020-02-13 16:08:39
如果您的JS文件在头文件中,这意味着当它执行时,页面的DOM没有完全加载。将内容包装在一个load事件侦听器中(如果您必须在vanilla JS中执行此操作):
window.addEventListener('load', function() {
const prID = "10496";
const EL_prID = document.querySelector(`[data-product-id="${prID}"]`);
if (EL_prID) {
EL_prID.parentNode.classList.add('is-hidden');
// ...?
}
});
当所有元素都被加载时,这会触发,因此,查询选择器至少应该找到它应该找到的内容(如果选择器匹配的话)。
https://stackoverflow.com/questions/60211636
复制相似问题