Javascript if语句验证不正确
这个小JS是当用户点击按钮时运行的。首先检查元素是否可见,然后根据检查显示/隐藏它 问题是if语句每次都验证为FALSE,即使else语句将style.display设置为我在if语句中要求的样式 在我简单的世界里,每运行一次,语句就会返回真值Javascript if语句验证不正确,javascript,jquery,Javascript,Jquery,这个小JS是当用户点击按钮时运行的。首先检查元素是否可见,然后根据检查显示/隐藏它 问题是if语句每次都验证为FALSE,即使else语句将style.display设置为我在if语句中要求的样式 在我简单的世界里,每运行一次,语句就会返回真值 if (d[0].style.diplay == 'block') { $(d[0]).slideUp('slow'); } else { d[0].style.display = 'block'; } 我在监督什么?在d
if (d[0].style.diplay == 'block') {
$(d[0]).slideUp('slow');
} else {
d[0].style.display = 'block';
}
我在监督什么?在diplay
打字旁边。。。(缺少s
)执行
slideUp
时,您可以直接转到。is(“:visible”)
取决于您想要什么(不是从您当前的问题中删去),但请参见以下内容:
var $el = $(d[0]);
if( $el.is(":visible") ){
// is visible
}else{
// is slided up (not visible)
}
您也可以简单地slideToggle()
您可以使用jQuery检查CSS规则,您知道
var elDisplay = $el.css("display"); // "none", "block", "inline-block" ...
因为我看到你已经在使用jQuery了。。。不需要,但它是为了让您的生活更轻松-因此,不要使用
var d=document.getElementsByClassName('.level4_class')代码>
使用
完成后,您可以从.CSS()
方法回调访问所需的CSS属性:
$el.css("display", function(index, displayValue){ // Iterates over all .level4_class el.
if( displayValue==="block") { // ...checking for "block" value
// do something using $(this)
}
});
什么是d[0]?如果d[0]是一个DOM对象,那么如何在$(d[0])上使用它,或者如果它是一个查询字符串,如何将它用作d[0]。style.display==“block”?请注意,style.display也可以保存块以外的值。@Ronnie$()
接受DOM对象作为参数。var d=document.getElementsByClassName('.level4_class')不管怎么说,这只是一个打字错误。迪普莱!==好的,我明白了。但是这样做是个好主意吗?在jQuery和JavaScript之间切换?一、 坦白说,从来没有。我认为,jQuery对象可以用作DOM元素(通过迭代)。这有助于保持可读性。无论如何,谢谢。我从未学过这一点。.is(“:visible”)
起到了关键作用,但我似乎仍然不明白为什么另一个语句验证为FALSE。在else语句中,我应该非常确定display设置为block;)网站代码也会在第一次启动脚本后显示block。@UlrikPedersen您可以添加更多基本代码,如HTML、CSS和更多jQ/JS,以创建可播放的测试用例。@UlrikPedersen请仔细阅读
var $el = $('.level4_class');
$el.css("display", function(index, displayValue){ // Iterates over all .level4_class el.
if( displayValue==="block") { // ...checking for "block" value
// do something using $(this)
}
});