通过孩子失去一些divs循环 - 为什么?

时间:2014-04-12 08:59:27

标签: jquery each children

我试图在父div“myDiv”中获得子div的总高度。这是结构:

<div style="height: 102px; display: block;" id="myDiv">
<div style="position: relative;" id="sf_0" class="reqCont ui-draggable" ondragstart="drag(event)">
    <div class="reqMsgCont">
        <div class="reqMsg"></div>
    </div>
    <div class="btnCont">
        <div class="expFold" id="i_0"></div>
    </div>
    <div id="e_0" class="exCont">
        <div id="d_0" class="exDel"></div>
        <div id="m_0" class="exMN"></div>
    </div>
</div>
<div id="p_0" class="expSngs"></div>
</div>

我正在使用:

var totalHeight =0;
$("#myDiv").children().each(function(){

        //totalHeight += $(this).outerHeight(true);
    alert(this.id);

});

总计很有趣,所以我设置一个警告来显示ID,显示的唯一ID是sf_0和p_0。为什么缺少其余的?

我虽然可能是因为我正在动态创建div,但是我同时创建它们,然后:

$("#myDiv").append(rO);

然后在此之后运行上面的每个循环。

2 个答案:

答案 0 :(得分:2)

children()只会为您提供直接的子节点,如果您想对它们进行全部检查,建议您使用find()方法

答案 1 :(得分:1)

儿童只会给你1级深度的div /

而是将其更改为:

var totalHeight =0;
$("#myDiv").find("div").each(function(){

        //totalHeight += $(this).outerHeight(true);
    alert(this.id);

});