Javascript 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

这个小JS是当用户点击按钮时运行的。首先检查元素是否可见,然后根据检查显示/隐藏它

问题是if语句每次都验证为FALSE,即使else语句将style.display设置为我在if语句中要求的样式

在我简单的世界里,每运行一次,语句就会返回真值

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').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)
    }
});