我想隐藏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);
工作正常意味着如果error
是null
,则打印它,但无论如何,它始终打印alert("ok");
。
并且document.getElementById('loginform').style.display = "hidden";
永远不会有效。
此代码有什么问题。
答案 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";