[英]Retrieve DOM element according to the number of its children
我想获取具有超过 5 个子元素的 DOM 元素,并仅为这些元素添加一个 class 名称。 例如,
<div class="parent">
<span>child</span>
<span>child</span>
<span>child</span>
</div>
<div class="parent">
<span>child</span>
<span>child</span>
<span>child</span>
<span>child</span>
<span>child</span>
<span>child</span>
</div>
<div class="parent">
<span>child</span>
<span>child</span>
</div>
在这种情况下,我想将spans
名称添加到上面有 6 个子 span 的第二个div
中。
我尝试了以下方法:
const parents = document.querySelector(".parent");
if (parents.childElementCount > 5) {
parents.classList.add('reduce-size');
}
您有 3 个 div 与 class 父级。 所以我认为你必须使用 querySelectorAll('.parent') 和之后的循环。 可能是这样的
const parents = document.querySelectorAll(".parent");
for (let i = 0; i < parents.length; i++) {
if (parents[i].childElementCount > 5) {
cityLocationTitle.classList.add('.reduce-size');
}
}
const parents = document.querySelectorAll(".parent");
parents.forEach(el => {
if(el.childNodes.length > 5){
el.classList.add('.reduce-size');
}
});
querySelector只返回第一个匹配的元素。 您需要将querySelectorAll与循环一起使用:
const parents = document.querySelectorAll(".parent"); for (let parent of parents) { if (parent.childElementCount > 5) { console.log("do stuff here"); } }
<div class="parent"> <span>child</span> <span>child</span> <span>child</span> </div> <div class="parent"> <span>child</span> <span>child</span> <span>child</span> <span>child</span> <span>child</span> <span>child</span> </div> <div class="parent"> <span>child</span> <span>child</span> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.