我有 div 元素,如下图所示。我想要将 css 显示为 block 的 div 数量。
我尝试过的:
1) $('div.price_listing_container:visible').length
和
2.)
$('#content').children("div").filter(function() {
return $(this).css('display') !== 'none';
}).length
和
3.) $("#content > div").filter(":block").size()
最后一个选项根本不起作用,其他两个在警报中起作用,但如果我将它们的返回值分配给变量,则该值变为0,不知道为什么会这样,请参阅下面的代码:
var numberOfResultsVisible = ($('#content').children("div").filter(function() {
return $(this).css('display') !== 'none';
}).length);
和
var numberOfResultsVisible = $('div.price_listing_container:visible').length;
赋值后值变为0。
请告诉我是否可以使用其他方法来获取计数。
最佳答案
一个简单的循环怎么样?
$(function(){
var allElems = document.getElementsByTagName('div');
var count = 0;
for (var i = 0; i < allElems.length; i++)
{
var thisElem = allElems[i];
if (thisElem.style.display == 'block') count++;
}
alert(count);
});
这里也一样: http://jsfiddle.net/E252r/8/
关于jQuery计数显示:block的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11611744/