首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jQuery选择样式为"visibility:visible“或"visibility:hidden”而不是"display: none“的项目

使用jQuery选择样式为"visibility:visible“或"visibility:hidden”而不是"display: none“的项目
EN

Stack Overflow用户
提问于 2010-02-17 18:39:43
回答 1查看 35.7K关注 0票数 17

如何使用jQuery仅选择可见元素?

jQuery选择器:visible和:hidden尊重display:none是否真正隐藏?非可见性:隐藏或可见性:可见。

我知道他们在技术上不是隐藏的because they still take their space。我只想知道它们的状态,这样我就可以选中可见的复选框。

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jQuery :visiblity Selector Test</title>

<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>

<script type="text/javascript">
    $(document).ready(function() {
        $("#VisibleCount").text($("input[type=checkbox]:visible").length); //returns 3. I think it should be 2
        $("#HiddenCount").text($("input[type=checkbox]:hidden").length); //returns 1. I think it should be 2
    });
</script>

<style type="text/css">
    #TestArea
    {
        border: solid red 1px;
    }
    #Results
    {
        background-color: Lime;
    }
    .container
    {
        border: solid black 1px;
    }
</style>
</head>
<body>
<div id="TestArea">
    <div class="container">
        visibility: hidden;<div style="visibility: hidden;">
            <input id="Checkbox1" type="checkbox" />
        </div>
    </div>
    <div class="container">
        visibility: visible;<div style="visibility: visible;">
            <input id="Checkbox2" type="checkbox" />
        </div>
    </div>
    <div class="container">
        display: none;<div style="display: none;">
            <input id="Checkbox3" type="checkbox" />
        </div>
    </div>
    <div class="container">
        display: inline;<div style="display: inline;">
            <input id="Checkbox4" type="checkbox" />
        </div>
    </div>
</div>
<div id="Results">
    <div>
        Visible Count: <span id="VisibleCount"></span>
    </div>
    <div>
        Hidden Count: <span id="HiddenCount"></span>
    </div>
</div>
</body>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-17 19:01:21

您可以使用css函数获取元素的样式,并使用filter函数从元素集合中选择它们:

代码语言:javascript
复制
var visible = $('input[type=checkbox]').filter(function() {
   return !($(this).css('visibility') == 'hidden' || $(this).css('display') == 'none');
});
票数 43
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2279926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档