Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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 包含级别的元素数量_Javascript - Fatal编程技术网

Javascript 包含级别的元素数量

Javascript 包含级别的元素数量,javascript,Javascript,如何计算顶级div,包括2个级别? 比如说, <div> <div> </div> <div> </div> </div> <div> <div> </div> <div> </div> </div> <div> <div> </div> <div

如何计算顶级div,包括2个级别? 比如说,

<div>
   <div>
   </div>
   <div>
   </div>
</div>
<div>
   <div>
   </div>
   <div>
   </div>
</div>
<div>
   <div>
   </div>
   <div>
   </div>
</div>

答案必须是3。
谢谢你的回答

您将为所有顶级div设置一个className属性。因此您应该有如下内容:

HTML


因此,我从顶层(
document.body
)获取了所有的
子元素,然后筛选出那些
div
元素并且有两个或更多子元素的子元素

const divs=[…document.body.children].filter(elm=>elm.tagName=='DIV'&&elm.children.length>1).length;
控制台日志(divs)

const allDivs=document.queryselectoral(“#range div”);
//“长度”将为您提供上述查询的重复计数。
console.log(allDivs.length)

不幸的是,如今CSS中仍然不存在“父”选择器,请参见,但以下内容可能会有所帮助:

//获取“顶级”div:
const topDivs=document.queryselectoral('body>div');
console.log([…topDivs].map(d=>d.childNodes[0].textContent.trim());
//获取“作为子级至少还有一个div的div”:
const twoLvlDivs=新集合()
document.querySelectorAll('div>div').forEach(d=>twoLvlDivs.add(d.parentNode));
console.log([…twoLvlDivs].map(d=>d.childNodes[0].textContent.trim())
div{padding left:20px}
1
1.1
1.2
2.
2.1
2.2
2.2.1
2.2.2
2.3
3.
3.1
3.2

这是否回答了您的问题?不,这是按课堂进行的,我需要换一般的汉克,最高级的部分这是最好的答案,但我想指出,这个问题的任何答案都是不好的做法。对于OP-如果您希望您的
元素在某种程度上是不同的,那么您真的,真的应该向这些元素添加一个类(或唯一ID),并根据该类进行选择,而不是使用JavaScript处理W3C选择器API。
<div class="parentDiv">
   <div>
   </div>
   <div>
   </div>
</div>
<div class="parentDiv">
   <div>
   </div>
   <div>
   </div>
</div>
<div class="parentDiv">
   <div>
   </div>
   <div>
   </div>
</div>
let x = document.querySelectorAll('.parentDiv');
console.log(x.length + 1);