Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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中的嵌套div_Javascript - Fatal编程技术网

计算JavaScript中的嵌套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。例如:

<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 ]