2013-09-30 147 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"]')