2009-04-16 43 views
2

我的頁面上有一些元素的集合,我想查看它們是否可見或不是當前。

所以:

$(".someClass") 

我遍歷和如何可以算出來?因爲如果它是可見的,我必須發射另一個功能。

回答

9
$(".someClass").each(function(){ 
    if($(this).is(":visible")){ 
    //item is visible: do something 
    } 
}); 

那怎麼樣?

+0

是的,我很確定這正是他想要的 – 2009-04-16 19:58:11

+1

是的,我不認爲我可以進一步優化它。好工作。 – KyleFarris 2009-04-16 20:51:13

2
$(".someClass:visible") 

將返回可見的。

1

你可以做什麼:

$(".someClass").each(function(x) { if (x.style.display != "none" && x.style.visibility != "hidden") { your_function(); } }); 

其中your_function()是你的函數的名稱。

1

關於$('.someClass').is(':visible')的所有解決方案都不可靠。它告訴我們的是,如果一個特定元素的樣式爲display:nonevisibility:hidden。這是不是就像一個元素是否可見一樣!

考慮的情況是這樣的:

​​

大家可以看到,$('.someClass')指定的元素是不可見的。但$('.someClass').is(':visible')將返回true

唯一的防水解決方案是不僅檢查$('.someClass')上的is(':visible'),還檢查其所有父元素。如果父母認爲沒有認爲is(':visible') === false,我們可以得出結論$('.someClass')實際上是可見的。

相關問題