jQuery - 检查子项是否可见

时间:2013-07-24 12:56:10

标签: jquery

如果隐藏了子div,我想隐藏父div并向body添加一个类, 但是,当孩子可见时,注意到了

if(jQuery('#toolbar > div').is(':visible')){
    jQuery('#toolbar').slideToggle('fast');
    jQuery('body').toggleClass('body-margin');
}

我的代码有什么问题?

<div id="toolbar">
    <div class="buttons" ></div>
</div>

3 个答案:

答案 0 :(得分:1)

试试这个

if(jQuery('#toolbar > div').is(':hidden')){
  jQuery('#toolbar').slideToggle('fast');
  jQuery('body').toggleClass('body-margin');
}

答案 1 :(得分:1)

如果我理解正确,您的代码就会倒退。您可以检查以查看是否有任何按钮div是可见的,如果没有使用您的动画隐藏并通过切换添加类或直接使用addClass()在这里我检查任何带有“按钮”类的子div:

if (!jQuery('#toolbar').find('div.buttons').filter(function () {
    return $(this).is(':visible');
}).length) {
    jQuery('#toolbar').slideToggle('fast');
    jQuery('body').toggleClass('body-margin');
}

答案 2 :(得分:1)

你需要

if(!jQuery('#toolbar').children('div:visible').length){
    jQuery('#toolbar').slideToggle('fast');
    jQuery('body').toggleClass('body-margin');
}

这将检查#toolbar内是否有可见div。