Tìm hiểu HTML DOM trong JavaScript
JavaScript HTML DOM | by
Trong lập trình web, DOM (Document Object Model) đóng vai trò quan trọng trong việc tương tác với nội dung và cấu trúc của một trang HTML. JavaScript HTML DOM cho phép lập trình viên thao tác với các phần tử trên trang web, thay đổi nội dung, cập nhật thuộc tính, xử lý sự kiện và nhiều chức năng khác để làm cho trang web trở nên linh hoạt và tương tác hơn.
Bằng cách sử dụng DOM, chúng ta có thể thay đổi nội dung một trang mà không cần tải lại, tạo ra hiệu ứng động và nâng cao trải nghiệm người dùng. Trong bài viết này, mình sẽ tìm hiểu về cách truy cập, chỉnh sửa và thao tác với DOM bằng JavaScript, từ những kỹ thuật cơ bản đến các phương pháp nâng cao.
DOM trong JavaScript là gì?
DOM (Document Object Model) là một mô hình tài liệu dạng cây (tree structure) được trình duyệt tạo ra từ một tài liệu HTML hoặc XML. Nó giúp JavaScript có thể truy cập và thay đổi nội dung, cấu trúc, cũng như kiểu dáng của trang web một cách linh hoạt.
Khi một trang web được tải, trình duyệt sẽ phân tích cú pháp HTML và xây dựng một mô hình DOM. Mỗi phần tử trong HTML được đại diện bởi một node (nút) trong cây DOM.
Cấu trúc của DOM
DOM có cấu trúc dạng cây với các thành phần chính như sau:
-
Node (Nút): Mỗi phần tử trong DOM đều là một node, chẳng hạn như thẻ HTML (<div>, <p>, <h1>, …), thuộc tính, hoặc nội dung văn bản.
-
Element Node (Nút phần tử): Đại diện cho các thẻ HTML như <div>, <p>, <a>,…
-
Attribute Node (Nút thuộc tính): Đại diện cho các thuộc tính của thẻ như id, class, src, href,…
-
Text Node (Nút văn bản): Đại diện cho nội dung bên trong các phần tử HTML.
Cách trình duyệt tạo ra DOM từ HTML
Trình duyệt sẽ thực hiện các bước sau để tạo ra DOM từ HTML:
-
Phân tích cú pháp HTML: Trình duyệt đọc và hiểu nội dung HTML.
-
Xây dựng DOM tree: Mỗi thẻ HTML sẽ trở thành một phần tử trong cây DOM.
-
Xử lý CSSOM (CSS Object Model): Trình duyệt kết hợp CSS vào DOM để tạo ra giao diện hiển thị.
-
Render (Kết xuất): Trình duyệt vẽ nội dung lên màn hình dựa trên DOM và CSSOM.
Ví dụ minh họa về cây DOM
Ví dụ với đoạn HTML sau:
<!DOCTYPE html> <html> <head> <title>Trang Web Mẫu</title> </head> <body> <h1 id="title">Xin chào!</h1> <p class="content">Chào mừng bạn đến với thế giới DOM.</p> </body> </html>
Cây DOM tương ứng sẽ có cấu trúc như sau:
Document │ ├── html │ ├── head │ │ └── title ("Trang Web Mẫu") │ ├── body │ ├── h1 (id="title") ("Xin chào!") │ ├── p (class="content") ("Chào mừng bạn đến với thế giới DOM.")
Trong mô hình này:
-
<html>
là nút gốc (root node). -
<head>
và<body>
là nút con (child nodes) của<html>
. -
<h1>
và<p>
là các phần tử con của<body>
. -
Nội dung bên trong
<h1>
và<p>
là text node.
Cách truy xuất phần tử HTML trong DOM trong JavaScript
JavaScript cung cấp nhiều phương thức để truy xuất các phần tử HTML trong DOM. Dưới đây là các cách phổ biến nhất để lấy phần tử trong trang web.
Sử dụng document.getElementById()
Mô tả:
Phương thức document.getElementById(id)
trả về một phần tử có id
cụ thể. Vì id
là duy nhất trong trang HTML, phương thức này chỉ trả về một phần tử duy nhất.
Cú pháp:
document.getElementById("id-phần-tử");
Ví dụ:
HTML:
<h1 id="title">Xin chào, DOM!</h1>
JavaScript:
let title = document.getElementById("title"); console.log(title.innerText); // Output: Xin chào, DOM!