Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery DIV计数_Javascript_Jquery - Fatal编程技术网

Javascript Jquery DIV计数

Javascript Jquery DIV计数,javascript,jquery,Javascript,Jquery,我试图计算父项下的元素数,但它给了我一个不正确的计数。结果应该是2,其中返回我4 我的HTML结构是: <div style="overflow: hidden;" id="parentDiv" class="scroll"> <div id="3"> <table id="t3" class="Table"> <tbody> <tr> <td id="b3" class="bY">

我试图计算父项下的元素数,但它给了我一个不正确的计数。结果应该是2,其中返回我4

我的HTML结构是:

<div style="overflow: hidden;" id="parentDiv" class="scroll">

<div id="3">
  <table id="t3" class="Table">
    <tbody>
      <tr>
        <td id="b3" class="bY"><table id="inner1" width="100%" cellpadding="3">
            <tbody>
              <tr>
                <td class="code" id="code3" width="172"></td>
                <td class="Num" id="Num3" width="50"></td>
                <td colspan="2" class="Name" id="Name"></td>
              </tr>
              <tr>
                <td class="code" width="172"></td>
                <td>&nbsp;</td>
                <td class="serial" width="110"></td>
                <td class="serial" width="322"></td>
              </tr>
            </tbody>
          </table></td>
      </tr>
    </tbody>
  </table>
</div>

 <div id="4" >
  <table id="t4" class="Table">
    <tbody>
      <tr>
        <td id="b4" class="bY"><table id="inner1" width="100%" cellpadding="3">
            <tbody>
              <tr>
                <td class="code" id="code4" width="172"></td>
                <td class="Num" id="Num4" width="50"></td>
                <td colspan="2" class="Name" id="Name"></td>
              </tr>
              <tr>
                <td class="code" width="172">&nbsp;</td>
                <td>&nbsp;</td>
                <td class="serial" width="110"></td>
                <td class="serial" width="322"></td>
              </tr>
            </tbody>
          </table></td>
      </tr>
    </tbody>
  </table>
</div>
如果我使用下面的代码,结果是1(这也是不正确的)


您好,您应该使用函数children()

该函数提供一个数组和十个数组,您可以得到长度

在children函数中,您可以指定要筛选的标记,但也可以将其留空,这样它将为您提供所有子项


使用give HTML代码,计算元素的代码是正确的,两种方法都应该返回两个

因此,结论是HTML代码实际上并不像您描述的那样。例如,可以给出该结果的结构可以如下所示:

<div id="parentDiv">
  <div>
    <div></div>
    <div></div>
  </div>
  <p>
    <div>
    </div>
  </p>
</div>

我被你的问题弄糊涂了-你的两个解决方案都给出了parentDiv下面正确的div数。下面是我在JSFIDLE中的示例—对我来说似乎很好。Alert说2我发现你的代码也运行良好-也许你有另一个id为parentDiv的元素?伙计们,这是我正在处理的HTML:re:people——那么你的HTML无效,你的#parentDiv标记从未关闭过:PMore简洁:$('#parentDiv>div')。length语句“你应该使用函数children”不正确,由于当前OP的解决方案提供了相同的功能,而且更简单。
var numofDivs = $("#parentDiv > div").size();
alert(numofDivs);
$("#parentDiv").children("div").length
<div id="parentDiv">
  <div>
    <div></div>
    <div></div>
  </div>
  <p>
    <div>
    </div>
  </p>
</div>
function countDivs(element) {
  var cnt = 0;
  $(element).children().each(function(){
    cnt += this.tagName === 'DIV' ? 1 : countDivs(this);
  })
  return cnt;
}

$(function(){
  alert(countDivs($('#parentDiv').get(0)));
});