Javascript Jquery DIV计数
我试图计算父项下的元素数,但它给了我一个不正确的计数。结果应该是2,其中返回我4 我的HTML结构是: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">
<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> </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"> </td>
<td> </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)));
});