计算div容器中样式标记的数量

时间:2014-02-03 20:50:34

标签: javascript jquery

我正在尝试使用jquery计算img元素的总数,然后计算父div标签中存在的样式标记的数量。当前的HTML看起来像这样:

<div id="origin" class="ui-test">
    <div class="polaroid ui-test">
        <img src="http://example.com/84655/l/72105d6f46205a948f00f6e59c299930.jpg" >
    </div>
    <div class="polaroid ui-test">
        <img src="http://example.com/77676/l/819e2093be4c61d2e21b1175f9d0f0f9.jpg" >
    </div>
    <div class="polaroid ui-test" style="left: 288.328125px; top: -8px; display: none;">
        <img src="http://example.com/47901/l/79f936ef9847793254bad21e16b2448f.jpg" >
    </div>
    <div class="polaroid ui-test" style="left: 94.328125px; top: 6px; display: none;">
        <img src="http://example.com/49761/l/6d10064d6b189c6934fd264ac295f5f8.jpg" >
    </div>
</div>

基于上面的例子,我试图获取父源容器下的总img元素数,然后显示有多少元素显示display: none;

我希望看到:4个img标签总数和2个隐藏的img标签

我想我可以通过以下方式获得图像的数量:

var totalImages = $("#origin img").length;

如何获得显示display:none?

的图像总数

5 个答案:

答案 0 :(得分:4)

试试这个:

var totalImages = $("#origin img").length;
var totalImagesWithStyle = $("#origin div[style] img").length;
//or
var totalImagesWithStyle = $("#origin div:hidden img").length;
//or
var totalImagesWithStyle = $("#origin .polaroid:hidden img").length;

Fiddle

答案 1 :(得分:0)

:hidden选择器选择隐藏的所有元素。

$( "#origin div:hidden" ).length;

答案 2 :(得分:0)

尝试使用:hidden jQuery selector

 $('#origin img:hidden');

答案 3 :(得分:0)

http://jsfiddle.net/35uvZ/。它由你的HTML部分组成;我留下了左边和顶部的声明。除此之外只是一些jQuery:

var $imgWrp = $('#origin .polaroid');
var $images = $imgWrp.find('img');
var $hiddenImages = $imgWrp.filter(':hidden').find('img');

console.log($images.length);
console.log($hiddenImages.length);

答案 4 :(得分:0)

为了提高效率,我会将其分解为两个步骤:

var allImages = $("#origin").find("img");
var hiddenImages = allImages.filter(":hidden");

然后你可以检索其中一组或两组的长度(根据需要)并从那里开始。