动态创建的DIV的计数返回零

时间:2014-06-13 13:35:49

标签: javascript jquery html

以下是我的代码和相关的HTML,我想做的是,我想计算search-img-boxsearch-img-ctrl的数量,但我得到0作为输出,只是告诉这里 以下div search-img-box是动态创建的。

 jQuery(document).ready(function() {
        var numberOfDivs = jQuery('#search-img-ctrl').filter('.search-img-box').length;
        alert(numberOfDivs);

    });

以下是我的HTML

<div id="search-img-ctrl" class="search-img-ctrl">
<div id="search-img-box" class="search-img-box" name="search-img-box">
<img width="335" height="206" src="" alt="">
<ul>
</div>
<div id="search-img-box" class="search-img-box" name="search-img-box">
</div> </div>

2 个答案:

答案 0 :(得分:4)

这是一个小提琴:http://jsfiddle.net/t5jcT/

我更改了过滤器以找到并删除了html中的重复ID。

jQuery(document).ready(function() {
    var numberOfDivs = jQuery('#search-img-ctrl').find('.search-img-box').length;
    alert(numberOfDivs);
});

或者你可以使用选择器代替find,正如其他人指出的那样:

jQuery(document).ready(function() {
    var numberOfDivs = jQuery('#search-img-ctrl .search-img-box').length;
    alert(numberOfDivs);
});

答案 1 :(得分:1)

使用.find代替.filter

var numberOfDivs = jQuery('#search-img-ctrl').find('.search-img-box').length;
alert(numberOfDivs);

如果您只想查找该班级的直接孩子数量,可以使用.children

var numberOfDivs = jQuery('#search-img-ctrl').children('.search-img-box').length;

另外请确保您修改html,以便您的html元素不会有重复的ID