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

标签 javascript dom pannellum

当我尝试使用 javascript 调用 document.getElementById(elemId).style.visibility = visible/hidden 隐藏/显示 DOM 中的元素时遇到问题。

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

我会链接一个我的问题的 fiddle 例子,希望有人能帮忙

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

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 默认值,隐藏

Fiddle Demo

最佳答案

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

为了测试在 1 秒后的超时调用中添加了 updateHtml,它起作用了。

setTimeout(() => updateHTML("8", "visible"), 1000);

jsfiddle demo

关于Javascript 无法显示/隐藏 Dom 元素(在 Pannellum 示例中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49667138/

相关文章:

javascript - 避免在 javascript 调用 Pannellum 中进行 Eval

javascript - Emscripten 将 C++ 编译为 JavaScript 和 Asm.js 的错误结果

javascript - 获取所需验证的默认消息

javascript - Backbone.js:如何从 View 范围之外调用 View 的 "method"(例如:在模型的验证处理程序中)

javascript - 圆环图中的目标线

JavaScript 将 ID 属性添加到另一个创建的元素

php - 使用 php 搜索 XML 文档

javascript - 当覆盖 div 可见时,如何停止滚动页面?

javascript - Pannellum clickHandlerFunc

javascript - 根据 <select> 下拉菜单更改 javascript 中的图像