if($('#elemento').css('display') == 'none'){
// Acción si el elemento no es visible
}else{
// Acción si el elemento es visible
}
如果我们还想检查我们所做的不透明度:
if($('#elemento').css('display') == 'none' || $('#elemento').css('opacity') == 0){
// Acción si el elemento no es visible
}else{
// Acción si el elemento es visible
}
确实可以使用
is(":visible")
,但根据经验,我建议使用类,这样您在测试应用程序时就不会遇到问题,因为许多测试库没有被测试的组件可见,无论您的组件有多少hide()
或show()
jQuery 它仍然会指示它不可见,并且您的组件的行为会很奇怪。这发生在我身上,来自 jQuery 的作者的 QUnit 测试库。我会做的是:
$el.toggleClass("hide")
或$el.addClass("hide")
。并检查它:
!$el.hasClass("hide")
。此外,使用它们时必须小心,
is(":visible")
因为visibility: hidden
uopacity: 0
被认为是可见的,因为它们占用了布局中的空间。请注意,我的解决方案是检查是否只有元素可见。可能是其中一位父母不可见,因此不可见。如果您想检查类似的内容,最好使用
is(":visible")
or!$(..).closest(".hide")
。您可以在已经存在的对象上将该函数
is()
与选择器一起使用。:visible
jQuery
例如,如果你有一个
div
withid
:"elemento"
你可以像这样判断它是否可见:有关更多信息,请查看is和:visible的文档
就像 jquery
:visible
在其示例中使用选择器一样,您可以将其嵌入到元素的搜索表达式本身中。或过滤
当您要迭代结果列表时,这些形式的元素过滤特别有用。
虽然如果你只需要一个布尔响应,正如Carlos Muñoz所写的那样,你可以这样做
你可以使用以下
如果我们还想检查我们所做的不透明度:
我参与了这个特定案例,其中初始解决方案就足够了:
但!请注意,正如一位同事在其他评论中所说,这不适用于具有以下属性的元素:
opacity:0
.就个人而言,最常用的是 with,
opacity
因为通过这种方式,可以以美学的方式对 DOM 中元素的出现/消失进行动画处理。对我有用的确切陈述的原因是:注意不要将数字 (0,1) 放在单引号或双引号中!
一切顺利。