jQuery 提供了一個過濾器 :visible 和 :hidden,可以用來判斷一個元素是否處于隱藏狀態。
$(document).ready(function(){ // 判斷id為test的元素是否可見 if ($("#test").is(":visible") { console.log("元素可見"); } else { console.log("元素隱藏"); } });
以上代碼會判斷 id 為 test 的元素是否可見,如果可見則輸出元素可見,否則輸出元素隱藏。
除了通過 is() 方法判斷元素是否可見,也可以使用 :visible 和 :hidden 過濾器來篩選出可見和隱藏的元素。
// 篩選出所有可見的 p 元素 var visibleP = $("p:visible"); // 篩選出所有隱藏的 div 元素 var hiddenDiv = $("div:hidden");
以上代碼會篩選出所有可見的 p 元素和隱藏的 div 元素,并分別存儲在 visibleP 和 hiddenDiv 變量中。
需要注意的是,如果一個元素的父級元素或祖先元素隱藏了,那么該元素也會被判斷為隱藏狀態,因為在頁面上該元素并不可見。
<div style="display:none;"> <p id="test">測試元素</p> </div> <script> if ($("#test").is(":hidden")) { console.log("元素隱藏"); } </script>
以上代碼中,即使 p 元素本身并沒有被定義為隱藏狀態,但是因為它的祖先元素 div 被定義為隱藏,所以該元素會被判斷為隱藏狀態。