ตัวเลือกแรก: เรียกใช้ forEach โดยอ้อม
parent.children
เป็นอาร์เรย์เช่นวัตถุ ใช้แนวทางต่อไปนี้:
const parent = this.el.parentElement;
Array.prototype.forEach.call(parent.children, child => {
console.log(child)
});
parent.children
มีNodeList
ชนิดซึ่งเป็นอาร์เรย์เช่นวัตถุเนื่องจาก:
- ประกอบด้วย
length
คุณสมบัติซึ่งระบุจำนวนโหนด
- แต่ละโหนดเป็นค่าคุณสมบัติที่มีชื่อตัวเลขโดยเริ่มจาก 0:
{0: NodeObject, 1: NodeObject, length: 2, ...}
ดูรายละเอียดในบทความนี้
ตัวเลือกที่สอง: ใช้โปรโตคอลที่ทำซ้ำได้
parent.children
คือHTMLCollection
: ซึ่งใช้โปรโตคอลที่ทำซ้ำได้ ในสภาพแวดล้อม ES2015 คุณสามารถใช้HTMLCollection
กับโครงสร้างใด ๆ ที่ยอมรับการทำซ้ำ
ใช้HTMLCollection
กับตัวดำเนินการแพร่กระจาย:
const parent = this.el.parentElement;
[...parent.children].forEach(child => {
console.log(child);
});
หรือด้วยfor..of
วงจร (ซึ่งเป็นตัวเลือกที่ฉันต้องการ):
const parent = this.el.parentElement;
for (const child of parent.children) {
console.log(child);
}