2014-02-18 31 views
1

我如何才能找到沒有隱藏的行數,下面是HTMLjQuery的尋找隱藏JEMS

<div style="display:none;"> 
    <ul id="abc"> 
    <li>List Item</li> 
    <li>List Item</li> 
    <li style="display:none;">List Item</li> 
    <li class="hidden">List Item Hidden</li> 
    </ul> 
</div> 

CSS

ul { border: 1px solid blue; padding: 2px; margin: 2px;} 
li { width: 100px; height:100px; background-color:blue;} 
.hidden { display: none; } 

jQuery的

$(function() { 
    alert($("#abc li:not(:hidden)").length); 
}); 

http://jsfiddle.net/76NNp/27/

編輯

代碼工作預期,但我要的是

一個隱藏的DIV中隱藏列表項的查找數...

注:這是一個彈出列表,我使用一些代碼.hide()和.show()李但列表有顯示:無;我仍然想知道有多少物品可見,好像它是零,我會隱藏打開此彈出列表的按鈕

編輯-------------- ---------------------------- 2

忘記了一切......

我想找出數而不是隱藏的列表項,如果它們在Div中,它們將變爲可見。

簡單的牛奶現在:-)

+2

有什麼問題你目前的做法?順便說一句,你可以將':not(:hidden)'縮短爲':visible'。 – haim770

+0

@ haim770如果選中小提琴,它會告訴你,我沒有得到李非隱藏.. – Mathematics

+0

自由權數要問什麼,如果有任何疑問 – Jain

回答

2

您可以過濾元素,並檢查他們的display樣式設置爲none。事情是這樣的:

$(function() { 
    var items = $("li").filter(function(){ 
     return $(this).css("display") != "none"; 
    }); 
    alert(items.length); 
}); 

Here is a working example

注意:這很大程度上取決於display:none;是確定某個元素是可見的或不是唯一的因素。如果您使用其他方法,如visibility:hidden;那麼您將需要修改您的過濾器來解決這個問題。

1

試試這個我的朋友:

$(function() { 
    $i = 0; 
    $("ul > li").each(function(){ 
     if(!$(this).hasClass('hidden') || $(this).css('display') != 'none') 
      $i++; 
    }); 
    alert($i); 
}); 
+3

您是否理解問題? –

+1

我認爲你是在錯誤的問題... – musefan

+0

對不起,我看不到父顯示:無 – Jain