如何检查元素visibility = hidden是否为真jQuery

时间:2013-10-02 07:27:22

标签: jquery html css

假设我有2个元素,div1和div2。当我点击div1时,div2应该在.toggleClass()visibility=hidden之间visibility=visible。这很好用。但是当我尝试这个时:

if($('#div2').css('visibility') == 'hidden') {
$('#div1').replaceWith('<span> Duh </span>');
}

什么都没发生。如果我将'hidden'更改为'visible',那就可以了。但这不是我想要的。我知道当使用visibility = hidden时,元素仍然被认为是可见的,但是不能.css('visibility') == 'hidden'检查元素的样式是否设置为visibility = hidden?在我的情况下应该是真的。

我也试过

if($('#div2').hasClass('visHidden')) {
$('#div1').replaceWith('<span> Duh </span>');
}

但没有任何反应。

问题是,当DOM加载时,没有设置visHidden和visVisible类吗?因为如果单击元素,我只使用jQuery设置它们。如果是这样的话有办法吗?我不能使用显示属性。

2 个答案:

答案 0 :(得分:-1)

您应该尝试使用.is() jquery方法检查可见性。

$(element).is(":visible") // Checks for display:[none|block], ignores visible:[true|false]

在你的情况下,

if(!$('#div2').is(":visible")) {
    $('#div1').replaceWith('<span> Duh </span>');
}

答案 1 :(得分:-1)

这是你的答案

    if($('#div2').is(':visible')) {....}