Hướng dẫn về DOM Manipulation trong javascript

26-08-24 Admin
-

1. DOM là gì?

DOM (Document Object Model) là mô hình đối tượng tài liệu, đại diện cho cấu trúc của tài liệu HTML hoặc XML dưới dạng cây (tree) các nút (node). Mỗi phần tử của tài liệu được xem như một nút trong cây.

2. Truy cập phần tử DOM

Để truy cập các phần tử trong DOM, JavaScript cung cấp một số phương pháp phổ biến:

  • getElementById(): Trả về 1 phần tử với id cụ thể.
var element = document.getElementById("myElement");
//Ví dụ: ta có thẻ HTML như sau: <h1 id="tieu-de-bai-viet">Tiêu đề bài viết</h1>
//Muốn truy cập được element này ta dùng như sau:
var element = document.getElementById("tieu-de-bai-viet");
  • getElementsByClassName(): Trả về danh sách các phần tử với lớp CSS cụ thể
var elements = document.getElementsByClassName("myClass");
//Ví dụ: ta có các thẻ HTML như sau:
<h1 class="article-header">Tiêu đề bài viết 1</h1>
<h2 class="article-header">Tiêu đề bài viết 2</h2>
//Muốn truy cập được các elements này ta dùng như sau:
var element = document.getElementsByClassName("article-header");
  • getElementsByTagName(): Trả về danh sách các phần tử với tên thẻ cụ thể.
var elements = document.getElementsByTagName("div");
  • querySelector(): Trả về phần tử đầu tiên phù hợp với một CSS selector cụ thể.
var element = document.querySelector(".myClass");
  • querySelectorAll(): Trả về danh sách tất cả các phần tử phù hợp với một CSS selector cụ thể.
var elements = document.querySelectorAll(".myClass");

Đối với các dạng querySelector thì chúng ta cần viết theo dạng selector của CSS.

VD: querySelector("#tieu-de-bai-viet") hoặc querySelector(".article-header') hoặc querySelectorAll(".article-header");

3. Thay đổi nội dung của phần tử

innerHTML: Sử dụng để thay đổi hoặc lấy nội dung HTML bên trong một phần tử.

element.innerHTML = "<p>New Content</p>";

innerText hoặc textContent: Sử dụng để thay đổi hoặc lấy nội dung văn bản bên trong một phần tử.

element.innerText = "New Text Content";

4. Thay đổi thuộc tính phần tử

setAttribute(): Sử dụng để thêm hoặc cập nhật giá trị thuộc tính của phần tử.

element.setAttribute("class", "newClass");

getAttribute(): Sử dụng để lấy giá trị của thuộc tính.

var value = element.getAttribute("id");

removeAttribute(): Sử dụng để xóa thuộc tín

h khỏi phần tử.

element.removeAttribute("style");

5. Thay đổi kiểu dáng của phần tử

style: Truy cập trực tiếp vào các thuộc tính CSS.

element.style.color = "blue";
element.style.fontSize = "20px";

6. Thêm và xóa các phần tử

createElement(): Tạo một phần tử HTML mới.

var newElement = document.createElement("div");

appendChild(): Thêm phần tử con vào cuối danh sách con của một phần tử cha.

var parent = document.getElementById("parentElement");
parent.appendChild(newElement);

removeChild(): Xóa một phần tử con khỏi phần tử cha.

var child = document.getElementById("childElement");
parent.removeChild(child);

insertBefore(): Chèn phần tử trước một phần tử con khác của phần tử cha.

var anotherChild = document.getElementById("anotherChild");
parent.insertBefore(newElement, anotherChild);

7. Thêm và xóa lớp CSS

classList.add(): Thêm một hoặc nhiều lớp CSS vào phần tử.

element.classList.add("class1", "class2");

classList.remove(): Xóa một hoặc nhiều lớp CSS từ phần tử.

element.classList.remove("class1", "class2");

classList.toggle(): Bật hoặc tắt một lớp CSS, nghĩa là thêm lớp nếu nó chưa có và ngược lại.

element.classList.toggle("active");

8. Sự kiện (Events)

Để làm cho trang web tương tác, bạn có thể thêm sự kiện vào các phần tử DOM.

addEventListener(): Thêm sự kiện cho một phần tử.

element.addEventListener("click", function() {
    alert("Element clicked!");
});

9. Ví dụ cơ bản

Dưới đây là một ví dụ đơn giản về việc thay đổi nội dung của một phần tử khi người dùng nhấp vào một nút.

<!DOCTYPE html>
<html>
<head>
    <title>DOM Manipulation</title>
</head>
<body>
    <p id="text">Original Text</p>
    <button id="changeTextButton">Change Text</button>

    <script>
        var button = document.getElementById("changeTextButton");
        button.addEventListener("click", function() {
            var text = document.getElementById("text");
            text.innerText = "Text Changed!";
        });
    </script>
</body>
</html>

Khi người dùng nhấp vào nút, nội dung của đoạn văn sẽ được thay đổi.

10. Kết luận

DOM Manipulation là một trong những kỹ năng cơ bản nhưng rất quan trọng trong lập trình web. Việc hiểu và sử dụng thành thạo DOM Manipulation sẽ giúp bạn tạo ra các trang web tương tác và động hơn.

Nếu bạn có câu hỏi cụ thể nào về DOM Manipulation hoặc cần thêm ví dụ, hãy cho tôi biết nhé!

 

Bài 2 - DOM Nâng cao

Bài viết liên quan

Làm quen với VueJS

26-10-2024 Admin
42 views + likes

Nếu bạn mới bắt đầu học lập trình front-end, thì Vue.js là một gợi ý không thể bỏ qua vì cách tiếp cận và sử dụng rất dễ dàng.

Lý thuyết về Cookie & Session & Localstorage

18-10-2024 Admin
45 views + likes

Cookie thích hợp cho việc lưu trữ thông tin nhỏ và ngắn hạn, Session là lựa chọn tốt để lưu trữ thông tin bảo mật như phiên làm việc

Network request trong JS

10-10-2024 Admin
50 views + likes

Network request trong JS

Xử lý bất đồng bộ với callback, promise, và async/await trong JavaScript

27-09-2024 Admin
67 views + likes

Bất đồng bộ là một khái niệm quan trọng trong lập trình, đặc biệt là trong các ứng dụng web và xử lý tác vụ như tải dữ liệu từ máy chủ, đọc file từ hệ thống

Javascript cơ bản

13-09-2024 Admin
123 views + likes

Nhập môn javascript