我有两个条件语句,一个有效,一个没有。我花了3天时间试图找出原因。希望这里有人能够解决这个问题。
工作语句 - 这个只是在display:none和:block
之间切换一个divcase 'addressSearch':
var div = document.getElementById('addsearch');
if (div.style.display !== 'block') {
div.style.display = 'block';
}
else {
div.style.display = 'none';
}
这是坏的 - 它应该根据div的显示属性指向不同的页面。它重定向,但不取决于显示的值。我不确定为什么,但div.style.display总是一个空字符串。
function loginCheck(){
var div = document.getElementById('loin');
if (div.style.display !== 'block') {
window.location = '/login.shtml';
}
else {
window.location = '/calendar.shtml';
}
};
css是#loin {display:block;}而html是
<div class="button" id="tmcb" onclick="loginCheck()">To My Calendar</div>
编辑:新的if语句
if (getComputedStyle(div, null).display !== 'block') { //something };
这有效
答案 0 :(得分:0)
style
属性返回分配给style
HTML属性的内容,而不是返回分配给HTML元素的CSS类的计算样式。如果您使用jQuery,则可以使用$('#loin').css('display')
。
如果您不想使用jQuery并且您定位IE9 +,则可以使用window.getComputedStyle
。我不知道IE8及其下的解决方案,但谷歌应该帮助你解决这个问题。
你也可以简单地使用style="display: block"
代替CSS类,避免所有这种计算风格的麻烦。