我有div元素,如下图所示。我想要将css显示为块的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。
请告诉我是否可以使用其他方法来计算。
答案 0 :(得分:1)
$('#content').find("div:visible").length
答案 1 :(得分:1)
不要内联样式 - 添加另一个类:
<div class="price_listing_container plblock"> ...
然后您可以使用以下方法过滤它们:
$('#content div.price_listing_container.plblock')
你的css中你有:
div.plblock {display:block;}
这是一种更清洁的方法。
答案 2 :(得分:1)
一个简单的循环怎么样?
$(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/
答案 3 :(得分:0)
$('#content').children('div:visible').length
答案 4 :(得分:0)
您正在寻找getComputedStyle()
财产。我听说它在IE中不可用,它可能有自己的替代功能。
答案 5 :(得分:0)
var display = $("#content").attr("style");
if(display.text(style) == "display:none")
{
} else {
}
答案 6 :(得分:0)
你说它在警报上工作而不是在你做警报的地方尝试
//alert($('div.price_listing_container:visible').length);
var myVar;
eval('myVar = '+$('div.price_listing_container:visible').length+';');
当您将任何事物分配给新变量时,它会共享引用,如果引用内存的值发生更改,则新变量也会更改。通过这段代码,它不会发生。
答案 7 :(得分:0)
试试这个...我刚试过它
length = $('div[style~="display:block;"]').size();
答案 8 :(得分:0)
此代码也对我有用:
$('#content').children('div:visible').length
$('#content').children('div:hidden').length