【发布时间】:2025-12-14 09:45:02
【问题描述】:
在 onLoad 函数期间,我设置了几个 div 元素,并将 CSS 属性 display none 分配为“不可见”:
function hideContent() {
laElements = document.getElementById("content").children;
for (var i = 0; i < laElements.length; i++) {
laElements[i].classList.add("hidden");
}
}
.hidden {
display: none;
}
稍后我想将其中一个 s 设置回可见(通过删除 CSS 类),但我遇到的问题是无法通过“getElementbyId”找到<div>。
相反,当我调用删除函数时,我得到了错误
TypeError: Cannot read property 'classList' of undefined"。
当我访问覆盖的 <div> 元素时,没有列出更多子元素。似乎属性“display:none”使元素从 DOM 中完全消失。
谁能告诉我我到底做错了什么或如何解决这个问题? 如果可能的话,我更喜欢没有 jQuery 的解决方案。
【问题讨论】:
-
请在您的问题中提供minimal reproducible example
-
将 div 设置为
display:hidden不会将其从 DOM 中删除。您必须在其他地方删除它,或者一开始就没有添加它,或者在 Javascript 中选择错误。 -
您正在添加“隐藏的类”并尝试通过
getElementById访问它。或者向我们展示 html 和其他 javascript 部分,以便我们更清楚地了解。 -
很抱歉我没有提供足够的信息。在JSFiddle 找到最小的示例唯一的区别 - 没有错误记录在那里。我想这意味着我做了一些非常愚蠢的事情......
-
使用“可见性:隐藏;”而不是“显示:无;”
标签: javascript html css dom