我正在尝试在最初具有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
}
由于元素对于加载的DOM或在display:none元素中是不可见的,我该如何更改?
由于
答案 0 :(得分:4)
元素将display
属性设置为的事实意味着该元素位于DOM中。
您可以将一些JS应用于隐藏元素,它们仍然是在DOM中加载的元素。
答案 1 :(得分:2)
无论是否可见都没关系。无论哪种情况都可以访问
答案 2 :(得分:0)
切换可见性的小功能可能是:
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');
。这不是我建议的方式,但是也没有创建一个新的元素,你说你在评论中做了。