Jquery - 从div获取所有可见的孩子

时间:2010-08-22 18:00:33

标签: jquery

我可以使用此代码获取元素的所有子元素

$('#all').children().each(function() { .... });

但是如何从id="all"

获得所有可见的“1”类孩子?

<div id="all">

    <div>asdd</div>
    <div class="one">content</div>
    <div class="one">bla</div>

    <div>
        ssss
        <div class="one" style="display:none">text</div>
    </div>

    <div class="one" style="display:none">blub</div>

</div>

4 个答案:

答案 0 :(得分:18)

您可以像这样使用:visible过滤器选择器:

$('#all').find('.one:visible').each(function(){
  // your code....
});

答案 1 :(得分:4)

您可以使用以下简单的jQuery函数

$('#all .one:visible');

这将为您提供第一类的所有可见元素。 (括在#all中)

答案 2 :(得分:3)

这会有用吗?

$('.one:visible', '#all')

答案 3 :(得分:0)

试试这个,另存为.html文件示例

<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script>
        $(document).ready(function(){

            $('#all').children().each(function() { 
                if($(this).hasClass('one') && $(this).css('display') != 'none')
                {
                    alert($(this).html());
                }
            });
        });
    </script>
</head>
<body>
    <div id="all">

        <div>asdd</div>
        <div class="one">content</div>
        <div class="one">bla</div>

        <div>
            ssss
            <div class="one" style="display:none">text</div>
        </div>

        <div class="one" style="display:none">blub</div>

    </div>
</body>
</html>