如何使用 . hide () 、.show () 或.toggle () 来切换元素的可见度 ?

如果元素可见或隐藏, 我如何测试 ?


当前回答

人们可以简单地使用隐藏或可见属性,例如:

$('element:hidden')
$('element:visible')

或您可以简化相同内容如下。

$(element).is(":visible")

其他回答

我只是想澄清一下, 在杰奎里,

元素可以被视作隐藏, 原因有几个: 它们有一个 css 显示值为零 。 它们是类型=“ 隐藏” 的形状元素。 它们的宽度和高度被明确设置为 0。 祖先元素被隐藏, 因此该元素不会在页面上显示 。 有可见度的元素: 隐藏或不透明: 0 被视为可见, 因为它们仍然在布局中消耗空间 。 在隐藏元素的动画中, 该元素被视为可见, 直到动画结束 。 sourc

if($('.element').is(':hidden')) {
  // Do something
}

这对我来说是有效的,我用表演和隐藏来使我的 div 隐藏/可见:

if( $(this).css('display') == 'none' ){
    /* your code goes here */
} else {
    /* alternate logic   */
}
if ( $(element).css('display') == 'none' || $(element).css("visibility") == "hidden"){
    // 'element' is hidden
}

上述方法不考虑父(父)的可见度。 如果要也考虑母( 父) , 您应该使用 .is (“ 隐藏 ” ) 或.is ( “ 可见 ” ) 。

例如,

<div id="div1" style="display:none">
  <div id="div2" style="display:block">Div2</div>
</div>

上述方法将考虑在以下两种情况下显示可见的 div2 : 看不到 。 但上述方法在许多情况下可能有用, 特别是当您需要找到隐藏的父( 隐藏的父( 隐藏的父) 中是否存在错误时, 因为在这种情况下 : 可见的不会起作用 。

if($("h1").is(":hidden")){
    // your code..
}

您可以使用隐藏选择器:

// Matches all elements that are hidden
$('element:hidden')

可见选择器 :

// Matches all elements that are visible
$('element:visible')