计算JavaScript中的嵌套div
嘿,我需要计算具有给定类名的嵌套div。例如:计算JavaScript中的嵌套div,javascript,Javascript,嘿,我需要计算具有给定类名的嵌套div。例如: <div id = "divA"> <div class = "anotherName"></div> <div class = "toBeCounted"></div> <div class = "someName"></div> <div class = "toBeCounted"></div> &
<div id = "divA">
<div class = "anotherName"></div>
<div class = "toBeCounted"></div>
<div class = "someName"></div>
<div class = "toBeCounted"></div>
<div class = "toBeCounted"></div>
<div class = ""></div>
</div>
<div id = "divB">
<div class = ""></div>
<div class = "toBeCounted"></div>
<div class = ""></div>
<div class = "toBeCounted"></div>
</div>
因此,如果我想计算“toBeCounted”,我会得到3个divA和2个divB。您可以使用
.queryselectoral()
并检查结果的长度:
var divAcount = document.querySelectorAll("#divA > .toBeCounted").length;
关系坚持认为.toBeCounted
元素是divA
的直接子元素。如果这不是您想要的,并且divA
中任何要计数的div都应该计算在内,那么您只需在Jquery中省去
,这可以通过使用
var countA = $("#divA .toBeCounted").length;
var countB = $("#divB .toBeCounted").length;
试试这个纯javascript代码
var countinDivA = document.getElementById("divA").getElementsByClassName("toBeCounted").length;
var countinDivB = document.getElementById("divB").getElementsByClassName("toBeCounted").length;
如果您事先不知道家长的id,这可能会很有用:
var parents = [],
counted = document.getElementsByClassName("toBeCounted");
for (var i=0; i < counted.length; i++ ) {
var id = counted[i].parentNode.id;
if ( !parents[id] ) parents[id] = 1
else parents[id]++;
}
这假设OP不是针对<8的IE浏览器(希望他们不是)@ElGuapo是的,这是真的-我的项目的全部内容就是让全世界相信IE8不可能是真的,从而让IE8消失
[ divA: 3, divB: 2 ]