javascript - 计算父子子节点
问题描述
所以我想知道如何计算父母子女子女的人数,例如:
const parent = document.querySelectorAll('.parent');
parent.forEach(el => {
const ul = el.querySelector('.child3-child');
const div = document.createElement('div');
div.textContent = ul.childNodes.length;
el.append(div);
});
<div class="parent">
<div class="child1">
text
</div>
<div class="child2">
text
</div>
<div class="child3">
<ul class="child3-child">
<li>
some text...
</li>
<ul>
</div>
</div>
现在我想计算有多少<ul class="child3-child">
子元素在这种情况下它只有 1 li
。
解决方案
- 使用
children
而不是childNodes
. 前者包括 HTML 元素,而后者包括文本节点。 - 正确关闭您的
</ul>
标签,否则浏览器会认为它正在打开一个嵌套元素。
const parent = document.querySelectorAll('.parent');
parent.forEach(el => {
const ul = el.querySelector('.child3-child');
const div = document.createElement('div');
div.textContent = ul.children.length;
el.append(div);
});
<div class="parent">
<div class="child1">
text
</div>
<div class="child2">
text
</div>
<div class="child3">
<ul class="child3-child">
<li>
some text...
</li>
</ul> <!--- This wasn't properly closed -->
</div>
</div>
推荐阅读
- haskell - 我想我找到了一个“不存在的单子”
- php - Codeigniter - 如何访问 result_array()
- python - 将带有列表和 dics 的 JSON 转换为数据框
- python - 带有“选择”的 BokehAPP 用于更改未显示其中一个图的图
- flutter - 使用 GestureDetector 的 onLongPressStart 每秒调整图标大小
- visual-foxpro - 如何检查项目/.exe 文件
- html - 如何实现标题和摄影师信用
- sas - 如何在 SAS 中对 Excel 文件进行不同的格式设置,例如粗体、斜体等?
- c# - 如何在紧凑模式下使用 MediaPlayerElement 移动窗口
- typescript - 如何指定排除已知继承索引键的类索引签名?