通过javascript有条件地隐藏div部分

时间:2015-01-16 07:11:31

标签: javascript html

我想隐藏javascript的div部分,我有像

这样的代码
$(document).ready(function() {
        var error='<%= session.getAttribute("errormsg") %>';
        alert(error);
        if(error!=null){
            document.getElementById('loginform').style.display = "hidden";
            alert("ok");
        }

    });

此处alert(error);工作正常意味着如果errornull,则打印它,但无论如何,它始终打印alert("ok");。 并且document.getElementById('loginform').style.display = "hidden";永远不会有效。

此代码有什么问题。

5 个答案:

答案 0 :(得分:2)

只需使用.hide()。

**   $(document).ready(function() {
        var error='<%= session.getAttribute("errormsg") %>';
        alert(error);
        if(error!=null){
            $('#loginform').hide()
            alert("ok");
        }

    });**

答案 1 :(得分:1)

使用:

document.getElementById('loginform').style.display = "none";

答案 2 :(得分:1)

如果你在javascript中使用undefined,那就好了

if(typeof variable_here === 'undefined'){
   // your code here.
 };

所以对你来说就像是

if(typeof error!==null){
            //make use of none insted of hidden to hide element completly
            //if you use hidden it will consume space on you page 
            //with none it will not consume space
            document.getElementById('loginform').style.display = "none";
            alert("ok");
        }

答案 3 :(得分:0)

我认为在javascript代码中使用java scriptlet不是一个好习惯,因为javascript运行在客户端和服务器端的java scriptlet上。我建议您使用隐藏字段errorMsg并在javascript中使用其值。如下,

<input type="hidden" id="errorMsg" value="${errormsg}">

将代码修改为,

$(document).ready(function() {
    var error=document.getElementById('errorMsg').value;
    alert(error);
    if(error!=null){
        document.getElementById('loginform').style.display = "none";
        alert("ok");
    }

});

除非您希望隐藏元素占用空间,否则使用none代替“隐藏”是一种很好的做法。

答案 4 :(得分:0)

use  document.getElementById('loginform').style.display = "none";

it will work fine

Or u can also use document.getElementById('loginform').style.visibility = "hidden";