Current date Tháng 5 18, 2026
JavaScript Reference

JavaScript Reference – Tập 18: HTMLCollection & NodeList – Quản lý danh sách phần tử

URL copied
Share URL copied
JavaScript Reference - Tập 18: HTMLCollection & NodeList - Quản lý danh sách phần tử
JavaScript Reference – Tập 18: HTMLCollection & NodeList – Quản lý danh sách phần tử

1. HTMLCollection là gì?

`HTMLCollection` là một danh sách chứa các phần tử HTML (Element nodes).

  • Kết quả trả về từ: `getElementsByTagName()`, `getElementsByClassName()`.
  • Đặc tính “Live” (Sống): Nếu bạn thay đổi DOM (ví dụ thêm một thẻ `
  • `), thì HTMLCollection sẽ tự động cập nhật số lượng phần tử ngay lập tức mà không cần gọi lại lệnh.
  • Truy cập: Có thể truy cập bằng chỉ số (`[0]`) hoặc bằng tên/ID (`namedItem()`).

2. NodeList là gì?

`NodeList` là một danh sách chứa các nút (Nodes). Nút ở đây có thể là phần tử HTML, nhưng cũng có thể là nút văn bản (Text node) hoặc nút bình luận (Comment node).

  • Kết quả trả về từ: `querySelectorAll()`, thuộc tính `childNodes`.
  • Đặc tính “Static” (Tĩnh): Hầu hết các NodeList là tĩnh. Có nghĩa là nếu DOM thay đổi sau khi bạn đã lấy NodeList, danh sách này sẽ không tự cập nhật (trừ trường hợp lấy từ `childNodes`).
  • Truy cập: Chỉ có thể truy cập bằng chỉ số (`[0]`).

3. Bảng so sánh nhanh

| Đặc điểm | HTMLCollection | NodeList |

| :— | :— | :— |

| Loại nút | Chỉ Element | Tất cả Node (Element, Text…) |

| Tính chất | Luôn luôn “Live” | Đa số là “Static” |

| Cách truy cập | Index, ID, Name | Chỉ Index |

| Duyệt (forEach) | Không hỗ trợ trực tiếp | Có hỗ trợ trực tiếp |

4. Tại sao chúng không phải là mảng?

Cả hai đều được gọi là “Array-like objects”. Bạn có thể dùng vòng lặp `for` để duyệt chúng, nhưng bạn không thể dùng các phương thức mạnh mẽ của Mảng như `.push()`, `.pop()`, `.map()` hay `.filter()`.

Mẹo: Nếu muốn dùng các hàm của mảng, hãy chuyển chúng về mảng thực thụ bằng Spread operator:

const collection = document.getElementsByClassName("item");
const array = [...collection]; // Chuyển thành mảng thực thụ
array.map(item => console.log(item));

Lời kết Tập 18

Đây là bài viết cuối cùng trong Series JavaScript Reference! Chúng ta đã đi qua một hành trình dài từ xử lý chuỗi, mảng, đối tượng cho đến việc làm chủ hoàn toàn các thành phần của trình duyệt và DOM.

Hành trình chinh phục JavaScript của anh Tuấn trên blog `tuannda.dev` chắc chắn đã có một bộ tài liệu tra cứu cực kỳ vững chắc. Chúc anh có những dự án tuyệt vời với những kiến thức này! 🏁✨

Share URL copied

Leave a comment

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Active0
AI3
AI & Automation10

Exclusives

Lifestyle

Related Articles

JavaScript Reference – Tập 17: HTML DOM Style – Điều khiển CSS bằng JS

Hướng dẫn chi tiết cách sử dụng đối tượng Style để thay...

JavaScript Reference – Tập 16: Event Objects – Lắng nghe mọi tương tác

Tìm hiểu toàn diện về các đối tượng sự kiện (Event Objects)...

JavaScript Reference – Tập 15: HTML Attributes – Làm chủ thuộc tính phần tử

Khám phá đối tượng Attributes và NamedNodeMap trong HTML DOM. Học cách...

JavaScript Reference – Tập 14: HTML DOM Element – Thao tác chi tiết từng thẻ

Hướng dẫn toàn tập về đối tượng Element trong HTML DOM. Học...