0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Hành Trình Học Java Full Stack và DOM trong JavaScript

Đăng vào 1 tháng trước

• 5 phút đọc

Hành Trình Học Java Full Stack và DOM trong JavaScript

Giới thiệu

Chào các bạn! Hôm nay là ngày thứ mười ba trong hành trình học JavaScript của mình. Trong bài viết này, mình sẽ chia sẻ những kiến thức mà mình đã học được, đặc biệt là về DOM (Document Object Model) trong JavaScript. DOM là một khái niệm rất quan trọng mà bạn cần nắm vững để có thể làm việc hiệu quả với các tài liệu HTML và XML.

DOM là gì?

DOM là viết tắt của Document Object Model. Đây là một giao diện lập trình cho phép bạn đại diện cấu trúc của một tài liệu HTML (hoặc XML) dưới dạng một cây các đối tượng. Điều này có nghĩa là bạn có thể truy cập và thao tác với các phần tử trong tài liệu một cách dễ dàng.

Ví dụ về cấu trúc DOM

Dưới đây là một ví dụ về cấu trúc DOM tương ứng với một tài liệu HTML đơn giản:

html Copy
<!DOCTYPE html>
<html>
  <head>
    <title>My Page</title>
  </head>
  <body>
    <h1 id="heading">Hello World</h1>
    <p class="text">This is a paragraph.</p>
    <button id="btn">Click Me</button>
  </body>
</html>

Cây DOM

Copy
Document  
└── html  
    ├── head  
    │   └── title  
    │       └── "My Page"  
    └── body  
        ├── h1#heading  
        │   └── "Hello World"  
        ├── p.text  
        │   └── "This is a paragraph."  
        └── button#btn  
            └── "Click Me"

Truy cập DOM bằng JavaScript

JavaScript cung cấp nhiều phương thức để truy cập và thao tác với các phần tử trong DOM. Dưới đây là một số phương thức phổ biến:

javascript Copy
// Truy cập theo ID
let heading = document.getElementById("heading");

// Truy cập theo class
let para = document.getElementsByClassName("text");

// Truy cập theo thẻ
let buttons = document.getElementsByTagName("button");

// Cách hiện đại - query selectors
let heading2 = document.querySelector("#heading");  // ID
let para2 = document.querySelector(".text");       // Class

Thay đổi nội dung

Bạn có thể thay đổi nội dung của các phần tử DOM bằng cách sử dụng các phương thức sau:

javascript Copy
document.getElementById("heading").textContent = "Welcome to DOM!";
document.querySelector(".text").innerHTML = "This text is <b>updated</b>.";

Thay đổi kiểu dáng

Thay đổi kiểu dáng của các phần tử cũng rất đơn giản:

javascript Copy
document.getElementById("heading").style.color = "blue";
document.querySelector(".text").style.fontSize = "20px";

Thêm và xóa phần tử

Bạn có thể dễ dàng thêm hoặc xóa các phần tử trong DOM:

javascript Copy
// Tạo phần tử
let newDiv = document.createElement("div");
newDiv.textContent = "I am a new div!";
document.body.appendChild(newDiv); // Thêm vào body

// Xóa phần tử
let btn = document.getElementById("btn");
bt.remove();

Thêm sự kiện

Sự kiện là một phần quan trọng trong việc tương tác với người dùng. Bạn có thể thêm các sự kiện như sau:

javascript Copy
let button = document.getElementById("btn");
button.addEventListener("click", function() {
  alert("Button clicked!");
});

Ví dụ tổng hợp

Dưới đây là một ví dụ hoàn chỉnh về việc sử dụng DOM trong một tài liệu HTML:

html Copy
<!DOCTYPE html>
<html>
<head>
  <title>DOM Example</title>
</head>
<body>
  <h1 id="heading">Hello World</h1>
  <p class="text">This is a paragraph.</p>
  <button id="btn">Click Me</button>

  <script>
    // Thay đổi nội dung tiêu đề
    document.getElementById("heading").textContent = "Welcome to DOM!";

    // Thay đổi kiểu dáng
    document.querySelector(".text").style.color = "green";

    // Thêm phần tử mới
    let newPara = document.createElement("p");
    newPara.textContent = "I am a new paragraph.";
    document.body.appendChild(newPara);

    // Thêm sự kiện
    document.getElementById("btn").addEventListener("click", function() {
      alert("You clicked the button!");
    });
  </script>
</body>
</html>

Các thực tiễn tốt nhất khi làm việc với DOM

  • Sử dụng querySelectorquerySelectorAll: Đây là những phương thức linh hoạt cho phép bạn chọn phần tử dựa trên CSS selectors.
  • Tránh thao tác DOM quá nhiều trong một lần: Nên thu thập các thay đổi và thực hiện chúng cùng một lúc để tối ưu hiệu suất.
  • Sử dụng innerHTML cẩn thận: Khi sử dụng innerHTML, hãy đảm bảo rằng bạn không tạo ra lỗ hổng bảo mật (XSS).

Những cạm bẫy thường gặp

  • Quên kiểm tra xem phần tử đã tồn tại hay chưa: Trước khi thao tác với phần tử, hãy kiểm tra xem nó có tồn tại hay không để tránh lỗi.
  • Không sử dụng addEventListener đúng cách: Nếu bạn không sử dụng addEventListener, bạn có thể vô tình ghi đè các sự kiện đã tồn tại.

Mẹo về hiệu suất

  • Sử dụng DocumentFragment khi thêm nhiều phần tử: Điều này giúp bạn giảm thiểu số lần thuốc DOM, từ đó cải thiện hiệu suất.
  • Giảm thiểu thao tác DOM trong vòng lặp: Thay vào đó, hãy xây dựng một chuỗi HTML và chỉ thêm nó vào DOM một lần.

Kết luận

Hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về DOM trong JavaScript và cách thao tác với nó. Hãy thực hành thường xuyên để củng cố kiến thức của mình! Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại để lại ý kiến dưới bài viết này nhé!

Câu hỏi thường gặp

1. DOM có thể sử dụng ở đâu?
DOM được sử dụng trong hầu hết các ứng dụng web để tương tác với HTML và XML.

2. Làm thế nào để cải thiện hiệu suất khi làm việc với DOM?
Sử dụng DocumentFragment và giảm thiểu số lần thao tác DOM là những cách hiệu quả.

3. Có cách nào để kiểm tra sự tồn tại của phần tử không?
Bạn có thể kiểm tra bằng cách sử dụng document.getElementById() và kiểm tra xem kết quả có phải là null hay không.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào