首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript无法显示/隐藏Dom元素(在Pannellum示例中)

Javascript无法显示/隐藏Dom元素(在Pannellum示例中)
EN

Stack Overflow用户
提问于 2018-04-05 08:02:34
回答 2查看 179关注 0票数 2

当我试图使用javascript调用document.getElementById(elemId).style.visibility =可视/隐藏在DOM中隐藏/显示一个元素时,我遇到了一个问题。

这是一种非常奇怪的行为,当我通过id获得DOM元素并将可见性设置为可见时,我可以在控制台中看到内联样式已经被修改,但屏幕上的元素仍然是隐藏的。

我会把我的问题联系起来,希望有人能帮上忙

这是我用来隐藏/显示DOM元素的函数

代码语言:javascript
复制
function updateHTML(elmId, value) {
  var elem = document.getElementById(elmId);
  if (typeof elem !== 'undefined' && elem !== null) {
    document.getElementById(elmId).style.visibility = value;
    console.log(elem);
  }
}

无论如何,即使是直接呼叫document.getElementById('2').style.visibility = 'visible'也不起作用。

PS我试图实现的是显示在感叹号上的跨度--对于css默认值来说,是隐藏的

小提琴演示

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-05 08:17:02

调用updateHtml时,元素尚未创建。

用于测试在1s之后的超时调用中添加了updateHtml,它可以工作。

代码语言:javascript
复制
setTimeout(() => updateHTML("8", "visible"), 1000);

小提琴演示

票数 1
EN

Stack Overflow用户

发布于 2018-04-05 08:14:30

我检查了您的小提琴,但是您在下面的代码中提到的id并不存在:

代码语言:javascript
复制
updateHTML("8", "visible");

在你的更新功能中你这样做..。

代码语言:javascript
复制
function updateHTML(elmId, value) {
  var elem = document.getElementById(elmId); // <- this line
  if (typeof elem !== 'undefined' && elem !== null) {
    document.getElementById(elmId).style.visibility = value;
    console.log(elem);
  }
}

但是你得到了不存在元素的id。

其他事物

ID和名称标记必须以字母([A-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符("-")、下划线("_")、冒号(":")和句点(".")。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49667138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档