在JavaScript中,遍历DOM元素的children
属性是一个常见的任务。children
属性返回一个实时的HTMLCollection,包含了元素的所有子元素节点。
length
属性获取子元素的数量。let element = document.getElementById('parentElement');
for (let i = 0; i < element.children.length; i++) {
console.log(element.children[i]);
}
let element = document.getElementById('parentElement');
Array.prototype.forEach.call(element.children, function(child) {
console.log(child);
});
或者使用ES6的扩展运算符:
let element = document.getElementById('parentElement');
[...element.children].forEach(child => {
console.log(child);
});
let element = document.getElementById('parentElement');
for (let child of [...element.children]) {
console.log(child);
}
children
是非常有用的。children
可以简化代码。children
属性返回的是实时集合,可能会因为DOM的变化而改变。解决方法: 如果需要稳定的子元素集合,可以将children
转换为静态数组。
let element = document.getElementById('parentElement');
let childrenArray = Array.from(element.children);
解决方法: 可以使用防抖或节流技术来减少DOM变化对遍历的影响,或者在DOM变化后再进行遍历。
假设我们有一个父元素<div id="parentElement">
,里面包含几个子元素,我们想要遍历这些子元素并给它们添加一个类名:
<div id="parentElement">
<div class="child">Child 1</div>
<div class="child">Child 2</div>
<div class="child">Child 3</div>
</div>
let parentElement = document.getElementById('parentElement');
for (let child of [...parentElement.children]) {
child.classList.add('highlight');
}
在这个例子中,所有子元素都会被添加一个highlight
类名。
领取专属 10元无门槛券
手把手带您无忧上云