我有一个带有data-windows属性的div元素列表:
我基本上想要检查是否有任何隐藏(并且如果它们都被隐藏则执行某些操作)
我正在这样循环,这可行,但我想知道是否有更有效的方式:
$("[data-windows]").each(function () {
if (!$(this).hasClass('hidden')) {
isSomethingShown = true;
return false;
}
});
答案 0 :(得分:3)
您可以使用:visible
伪选择器:
if($("[data-windows]:visible").length){
//Atleast 1 is visible
}else{
//All hiden
}
或
var isSomethingShown = !!$("[data-windows]:visible").length; // Bang!Bang! [!!] convert into a boolean
当然,如果你想明确检查这个类,那么两个选择器都可以改为(也许应该是为了更快的性能)$("[data-windows].hidden")
答案 1 :(得分:2)
这个oneliner怎么回事:
return $("[data-windows].hidden").length == 0 ? false : true;