16

HTML:

<div class="male">...</div>
<div class="male">...</div>
<div class="female">...</div>

我有几个类别为类的 div(还有更多没有.male内部的 div),在启动时我将它们计算为

$('.male').size(); // Returns 40 items for example

(我知道size();已弃用,但我们使用的是旧版本的 jQuery)

在应用过程中,某些 div 在特定点击后变得不可见,我想重新计算可见项目。

我试过了

$('.male :visible').size();

但它给了我一个可怕的高数字,比如 3050,所以我假设选择器确实计算了里面所有可见的 div.male或其他东西。

有人能建议我正确的选择器只用于特定类的可见 div 吗?

4

2 回答 2

37

您需要删除 and 之间的空格.male:visible否则您的目标是所有可见元素 .male

$('.male:visible').size();

这是一个显示两者的快速 JSFiddle 演示。

更新: jQuery 1.8 弃用了它的size()方法,转而使用 JavaScript 的length属性。我们现在可以:

$('.male:visible').length;
于 2013-10-15T12:48:33.357 回答
8

从选择器中删除空格:

$('.male:visible').size();
于 2013-10-15T12:48:33.680 回答