如何使已从显示:无更改为显示:块的元素在 DOM 中可用

How to make element that has changed from display:none to display:block available in the DOM?

本文关键字:显示 元素 DOM 何使      更新时间:2023-09-26

我正在尝试在最初具有display:none属性的元素上应用一些javaScript。例:

<input type="button" onclick="document.getElementById('container').style.display='block';">
<div style="display:none;" id="container">
<input type="text" name="somename" id="somename" onclick="applySomeJsToTextField();">
</div>
function applySomeJsToTextField() {
//js code here
}

由于该元素对加载为显示:none 元素的 DOM 不可见,我该如何更改它?

谢谢

元素将 display 属性设置为某物的事实意味着该元素位于 DOM 中。

您可以将一些JS应用于隐藏元素,它们仍然是DOM中加载的元素。

不管

它是否可见。在任何一种情况下都可以访问

切换

可见性的小函数可能是:

functionToggleDiv()
{
    var container = document.getElementById('container');
    container.style.display = (container.style.display === 'none' ? 'block' : 'none');
}

但是,如果这段代码不适合你,那么 dom 可能没有完全加载,在你与之交互的元素之后插入 JS,或者研究其他方法(window.onload等)来解决这个问题。

只是一个想法:但是如果所有样式属性都包含display:none;但是,您可能愿意尝试:document.getElementById('container').removeAttribute('style'); 。不过,这不是我的建议,但也不是创建新元素的方式,您在评论中说要这样做。