jQuery count div,它有一个display:none属性

时间:2010-02-24 15:50:36

标签: jquery html count

我想计算一个类名为“items”且具有属性“style = display:none”的div。

<div id="skills">
<div class="items" style="display:none">1</div>
<div class="items">2</div>
<div class="items">3</div>
<div class="items" style="display:none">4</div>
<div class="items" style="display:none">5</div></div>

输出应为'3'。

=============================================== ============

除了问题:

<div id="skills1">
<div class="items" style="display:none">1</div>
<div class="items">2</div>
<div class="items">3</div>
<div class="items" style="display:none">4</div>
<div class="items" style="display:none">5</div></div>

<div id="skills2">
<div class="items" style="display:none">1</div>
<div class="items" style="display:none">2</div>
<div class="items" style="display:none">3</div>
<div class="items" style="display:none">4</div>
<div class="items" style="display:none">5</div></div>

输出应为'3'&amp; '5'。

1 个答案:

答案 0 :(得分:16)

原件:

var count = $('div.items:hidden').length;

新:

var counts = {};
$('#skills1,#skills2').each( function() {
    counts[$(this).attr('id')] =  $('div.items:hidden', $(this)).length;
}

counts对象将是:

{ skills1 : 3, skills2 : 5 }

最后(?)

$('#skills1,#skills2').each( function() {
    if ($('div.items:hidden',$(this)).length == 0) {
        $(this).hide();
    }
});

如果你给“容器”一个类作为选择器,那就更容易了。然后你可以简单地用类选择器替换#skills1,#skills2,而不是让函数依赖于DIV的名称,这意味着如果你添加另一个容器就不必改变它,比如说skills3。您只需要确保为该容器提供正确的类。