3

我有 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。

你能告诉我是否可以使用其他方法来获得计数。

在此处输入图像描述

4

9 回答 9

2

一个简单的循环怎么样?

$(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/

于 2012-07-23T11:54:49.883 回答
1
$('#content').find("div:visible").length

见演示:http: //jsfiddle.net/E252r/2/

于 2012-07-23T11:37:35.133 回答
1

不要内联样式 - 添加另一个类:

 <div class="price_listing_container plblock"> ...

然后您可以使用以下方法过滤它们:

 $('#content div.price_listing_container.plblock')

在您的 CSS 中,您将拥有:

 div.plblock {display:block;}

这是一种更清洁的方法。

于 2012-07-23T11:38:14.613 回答
0

试试这个...我刚刚测试过

    length = $('div[style~="display:block;"]').size();
于 2012-07-23T12:25:35.080 回答
0
$('#content').children('div:visible').length
于 2012-07-23T11:41:26.373 回答
0

您正在寻找getComputedStyle()房产。我听说它在 IE 中不可用,它可能有自己的替代功能。

于 2012-07-23T11:41:55.630 回答
0
var display = $("#content").attr("style");
if(display.text(style) == "display:none")
  {

  } else {

  }
于 2012-07-23T11:42:42.490 回答
0

You said it worked on alert than try this where you do alert

//alert($('div.price_listing_container:visible').length);
var myVar;
eval('myVar = '+$('div.price_listing_container:visible').length+';');

When you assign any thing to new variable it shares the reference, and if the value of referenced memory is changed than the new variable is also changed. by this code it will not happen.

于 2012-07-23T11:44:47.487 回答
0

这段代码也对我有用:

$('#content').children('div:visible').length
$('#content').children('div:hidden').length
于 2018-09-05T07:40:36.443 回答