如何使元素从display:none更改为显示:DOM中可用的块?

时间:2012-06-05 10:40:44

标签: javascript css dom

我正在尝试在最初具有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元素中是不可见的,我该如何更改?

由于

3 个答案:

答案 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');。这不是我建议的方式,但是也没有创建一个新的元素,你说你在评论中做了。