2013-09-30 109 views
7

我检索的“发现”元素(这些元素具有.highlight类)这个简单的jQuery片段数量:的jQuery寻找元素:块

$(".highlight").length 

但现在我的问题是,一些元素被隐藏,通过style="display: none;"

现在,我如何获得突出显示的元素数量?

喜欢的东西:

$(hasClass 'highlight' AND has style 'display: block'). length ? 

回答

21

您可以使用:visible获得元件,它是可见的。

$(".highlight:visible").length 
2
ü

还可以通过使用css看到元件做具有的CSS display="none"display="block"

$(".highlight").each(function(){ 
     if($(this).css("display")=="block"){ 
      //Your code here 
     } 
    }); 
5

的一种方式是如阿迪尔提到使用:visible jQuery的伪选择器。

一个常见的错误是,如果与.highlight类元素嵌套到隐藏,然后一个容器,你将无法得到它,即使该元素具有display: block

相反,你可以使用CSS的正则表达式如下: $('.highlight[style*="display: block"]')

一个常见的错误是,您需要确切知道如何编写规则。如果在block之前没有空格,则如下所示:display:block而不是display: block您无法获取元素。

克服这种情况的方法是只在风格的搜索术语block像这样: $('.highlight[style*="block"]')