2010-10-29 73 views
33

這應該是一個容易的。我有一個變量,我已經聲明爲$ listItems。該聲明如下所示:jQuery:給定一個選擇器,只找到它的可見元素

var $listItems = $ul.children('li'); // $ul is just a selected unordered list 

在我的代碼後面,我只想得到那些當前可見的。我會怎麼做呢?例如:

$listItems.parent().children(':visible')? 

謝謝。

回答

70

您可以使用.filter()到一組元素縮小到只有一個選擇(或功能)相匹配的,是這樣的:

$listItems.filter(':visible') 
+0

是的,這就是我的意思是尼克;) – fehays 2010-10-29 00:16:13

+0

這是特別有用的,如果你需要過濾多個值。例如。選中並可見。 +1爲一個好的解決方案! – 2012-07-30 19:10:08

+0

FWIW,jQuery將元素定義爲可見的「如果它們消耗文檔中的空間」。一個元素可以將其'visibility'設置爲'hidden',所以它實際上並沒有在頁面上看到,但':visible'仍然會返回元素。 – jacroe 2017-03-28 17:53:15

4

你擁有了它與:visible選擇。它可以在任何的jQuery的收集方法$()filter()children()find()等使用

注:有一些東西是可見在頁面上,有其visibility屬性集之間的差異。