隐藏<div>设置为display:block with jQuery </div>

时间:2011-12-22 17:43:34

标签: jquery

如何查看div的可见度,如果divdisplay:block;,则隐藏该信息,如果divdisplay:none;,别管它?

if(codition){
    $(".thanks").fadeIn('slow');
    $(".thanks").html(json[0]);
    $(".thanks").css('color','red');
}else{
    //HERE I want to check if the thanks div is display:block,hide it other wise ignore it    
    $(".errordiv").css('color','green');
    $(".errordiv").fadeIn('slow');
}

6 个答案:

答案 0 :(得分:2)

您可以使用:visible选择器吗?

if($('div').is(':visible')){
//execute
}

或者,我想您可以检查其CSS值:

if($('div').css('display')=='block'){
//execute
}

答案 1 :(得分:1)

它可能甚至不值得检查它是否已经可见,只需要调用hide。例如

$('.thanks').hide();

答案 2 :(得分:1)

您可以使用css方法

if ($(".errordiv").css('display') == 'block') {
   //display is equal to block, use .hide();
}

另外,我想指出,如果你只有一个元素,最好用ID而不是类来引用它。这是一个微观优化,但它更清洁,更快。

答案 3 :(得分:1)

考虑一下:

var elem1, elem2;

elem1 = $( '.thanks' )[0];
elem2 = $( 'errordiv' )[0];

if ( codition ) {
    $( elem1 ).html( json[0] ).addClass( 'class1' ).fadeIn( 'slow' );
} else {
    if ( $( elem1 ).is( ':visible' ) ) { $( elem1 ).hide(); }
    $( elem2 ).addClass( 'class2' ).fadeIn( 'slow' );
}

我的代码中有类"class1""class2",但您当然会有更好的名称 - 将演示文稿添加到元素中。


让我解释一下......

所以,这个:

var elem = $( '#test' )[0];

相当于:

var elem = document.getElementById( 'test' );

我使用$( '#...' )[0]表示法作为.getElementsById()的简写。

答案 4 :(得分:0)

尝试this

if ($('div.errordiv:visible').length) {
    ....
}

答案 5 :(得分:0)

我想你可以用toggle()来做这件事。

<div class='mixedDisplay' style='display: none;'>Hello</div>
<div class='mixedDisplay'>World</div>
$('.mixedDisplay').toggle();

http://jsfiddle.net/rlemon/Y8RwV/

我知道这并不是你想要的,但它可能有用。