无法使用JavaScript隐藏HTML div

无法使用JavaScript隐藏HTML div,javascript,html,css,jsp,servlets,Javascript,Html,Css,Jsp,Servlets,我有一个带有以下登录表单代码的JSP: <c:if test="${requestScope.loginFailed == true}"> <script> show('login-failed'); </script> </c:if> <c:if test="${sessionScope.userLoggedIn == true}"> <script> show('w

我有一个带有以下登录表单代码的JSP:

<c:if test="${requestScope.loginFailed == true}">
    <script>
        show('login-failed');
    </script>
</c:if>
<c:if test="${sessionScope.userLoggedIn == true}">
    <script>
        show('welcome');
        hide('login-table');
    </script>
</c:if>

<div id="welcome" style="display: none;">
    <p style="color: green">Welcome ${sessionScope.user.userName}</p>
</div>

<div id="login-failed" style="display: none;">
    <p style="color: red">Invalid UserName/Password!</p>
</div>

<div id="login">
.........................
....actual login form....
.........................
</div>
但是,即使当用户登录时,即使在sessionScope中找到userLoggedIn属性,即使测试成功,如果我无法隐藏登录div。有人可以指导我吗?

在显示和隐藏函数影响的元素之前调用它们

您应该将脚本移动到更简单的元素之后,或者将它们的执行推迟到稍微复杂一些但通常认为更正确的页面末尾

即使测试成功,如果我无法隐藏登录div

问题是


因此,您可能需要隐藏“登录”;在1中,实际上我也有登录表id。非常感谢。。你救了我的命。我对发生的事情感到非常沮丧。
function show(id) {
    document.getElementById(id).style.display = 'block';
}

function hide(id) {
    document.getElementById(id).style.display = 'none';
}
<c:if test="${sessionScope.userLoggedIn == true}">
    <script>
        show('welcome');
        hide('login-table');
    </script>
</c:if>
<div id="login">