使用类名jquery计算可见的div

时间:2011-01-11 22:18:41

标签: jquery

我在使用:with with class name时遇到了麻烦。

例如:

<div class="groupedDiv" id="group1">
    <div class="level1">
        Apples
        <div class="level2"> || L2-apple </div>
    </div>

    <div class="level1" style="display:none;">
        Oranges 
        <div class="level2"> || [L2-orange] </div>
    </div>
</div>

<br/>

<div class="groupedDiv" id="group1">
    <div class="level1">
        Roses
        <div class="level2"> || L2-rose </div>
        <div class="level3"> l3 rose </div>
    </div>
</div>

如果我想计算“level1”类的可见div的数量

$(".level1 :visible").length;给我输出3,这不应该输出2吗?

$(".level1 :visible").parent().length;给我输出2是正确的

我在http://jsfiddle.net/metalhawk/P87jS/

创建了这个示例

任何建议都有帮助。感谢

2 个答案:

答案 0 :(得分:41)

$(".level1 :visible")是后代选择器:您选择的所有可见元素都是.level1的后代。在div元素下可以看到三个.level1个元素。

请改用:

$(".level1:visible").length;

See your fiddle per my update

答案 1 :(得分:4)

非常确定您需要$(".level1:visible").length;

太空正在打破代码