使用jQuery计算可见的div

Dan*_* W. 10 html javascript jquery jquery-selectors

HTML:

<div class="male">...</div>
<div class="male">...</div>
<div class="female">...</div>
Run Code Online (Sandbox Code Playgroud)

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

$('.male').size(); // Returns 40 items for example
Run Code Online (Sandbox Code Playgroud)

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

在应用程序中,一些div在特定点击后变为不可见,我想重新计算可见项目.

我试过了

$('.male :visible').size();
Run Code Online (Sandbox Code Playgroud)

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

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

Jam*_*lly 26

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

$('.male:visible').size();
Run Code Online (Sandbox Code Playgroud)

这是一个快速的JSFiddle演示,显示了两者.

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

$('.male:visible').length;
Run Code Online (Sandbox Code Playgroud)


tym*_*eJV 8

从选择器中删除空格:

$('.male:visible').size();
Run Code Online (Sandbox Code Playgroud)