2013-12-03 27 views
1

如果我有一個HTML片段如何獲取具有某個css屬性的元素的長度?

<div> 
    <ul style="display:block"> 
     <li>A</li> 
     <li>B</li> 
    </ul> 
    <ul style="display:none"> 
     <li></li> 
     <li></li> 
    </ul> 
</div> 

如何使用jQuery找到沒有。 div中的ul元素與display: none的css屬性? 我知道我可以使用$('div').children('ul').length但這返回所有的UI元素

回答

3

您可以爲特定的CSS值過濾與簡單的過濾器:

$('div ul').filter(function() { 
    return this.style.display === 'none'; 
}).length 
5

您可以使用:hidden選擇,如果你想獲得隱藏ul s的長度。它將處理與display:none設置。同樣你也有:visible選擇器。

$('div').children('ul:hidden').length 

元素可以被認爲是隱藏的幾個原因:

  • 他們有沒有的CSS顯示值。
  • 它們是type =「hidden」的表單元素。
  • 它們的寬度和高度明確設置爲0.
  • 祖先元素被隱藏,因此元素不會顯示在頁面上。
+0

嘿,我注意到,如果我隱藏了祖先元素,即使UI元素都顯示:塊,:可見選擇不作爲工作這是沒有看到。 adeneo的解決方案適合我的需求.. – Aditya

1

您應該可以使用:visible標籤來查找所有可見列表,然後執行$('ul:visible').length或者:隱藏查找長度。

相關問題