Javascript if语句未验证正确

时间:2015-09-20 19:26:08

标签: javascript jquery

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

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

在我的简单世界中,语句每次运行都会返回true ...

if (d[0].style.diplay == 'block') {
    $(d[0]).slideUp('slow');
} else {
    d[0].style.display = 'block';       
}

我在监督什么?

1 个答案:

答案 0 :(得分:1)

diplay错字旁边...(缺少s
在执行slideUp时,您可以直接转到.is(":visible") 取决于你想要什么(不是你当前的问题的夹板),但看到这个:

var $el = $(d[0]);
if( $el.is(":visible") ){
    // is visible
}else{
    // is slided up (not visible)
}

你也可以简单地slideToggle()

var $el = $(d[0]);
$el.slideToggle();

你可以使用jQuery检查CSS规则,你知道......

var elDisplay = $el.css("display"); // "none", "block", "inline-block" ...

因为我看到你已经使用了jQuery ......不需要它,但它意味着让你的生活更轻松 - 所以而不是var d = document.getElementsByClassName('.level4_class');

使用

var $el = $('.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)
    }
});

<强> jsbin demo