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

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


当前回答

隐藏 () 、 显示 () 和 tgggle () 将 cs (display: noone 或 显示: block) 附加到元素中。 同样, 我们也可以很容易地使用长期操作器检查显示 cs 来检查该元素是否隐藏或可见 。

更新内容 :

您还需要检查元素 css 设置为可见度: “ 可见” 或可见度: “ 隐藏” 如果显示属性设置为内嵌区块、 区块、 弹性, 该元素也将可见 。

这样我们就可以检查一个元素的属性, 使得它隐形。 所以它们会显示: 没有和可见度 : “ 隐藏 ” ;

我们可以创建一个用于检查隐藏元素的属性对象 :

var hiddenCssProps = {
display: "none",
visibility: "hidden"
}

我们可以通过绕行检查对象匹配中的每个关键值, 如果密钥的元素属性与隐藏的属性值匹配 。

var isHidden = false;
for(key in hiddenCssProps) {
  if($('#element').css(key) == hiddenCssProps[key]) {
     isHidden = true;
   }
}

如果您想要检查像元素高度: 0 或宽度: 0 或以上这样的属性, 您可以扩展此对象, 并添加更多属性, 并且可以检查 。

其他回答

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 : 看不到 。 但上述方法在许多情况下可能有用, 特别是当您需要找到隐藏的父( 隐藏的父( 隐藏的父) 中是否存在错误时, 因为在这种情况下 : 可见的不会起作用 。

expect($("#message_div").css("display")).toBe("none");

这是用来检查标签是否可见的选项

/ 使用纯 cs 选择器 { 提醒 { { / 使用jquery 过滤器 () 的方法 { / 使用 jquery's is () 方法 { { 警报 ( 段落可见 ( 使用 () 方法 ) } } ; / 使用 jquery 过滤器 () 的方法 $ ( p) 过滤器 (: 可见) { 提醒 ( 段落可见 ( 使用 () 过滤器 () 方法 检查) } } ; / / 您可以使用 hidden i 。

$( "div:visible" ).click(function() {
  $( this ).css( "background", "yellow" );
});
$( "button" ).click(function() {
  $( "div:hidden" ).show( "fast" );
});

api 文档: 可见选择器

如果您想要检查页面上是否可见元素, 取决于其父的可见度, 您可以检查元素的宽度和高度是否均等于 0 。

jquery 圆

$ementle. width () 0

香草香草

元素. clishight = 0 元素. clishight 0

e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e. e.