Thao tác DOM trong TypeScript
Bài viết này giải thích về cách thao tác DOM trong TypeScript.
Bạn sẽ học cách thao tác với các phần tử DOM, cũng như cách thêm hoặc xóa phần tử khỏi cây DOM thông qua các ví dụ mã nguồn.
YouTube Video
Thao tác DOM trong TypeScript
Việc thao tác DOM trong TypeScript được thực hiện tương tự như JavaScript, nhưng TypeScript cung cấp kiểm tra kiểu, giúp các thao tác an toàn hơn. DOM (Document Object Model) là một mô hình đối tượng dùng để thao tác các tài liệu HTML và XML thông qua lập trình. Nó cho phép bạn truy cập các trang đang hiển thị trong trình duyệt, thêm hoặc xóa phần tử, hoặc thay đổi kiểu hiển thị.
Chúng ta hãy giới thiệu các phương pháp cơ bản để thao tác DOM bằng TypeScript.
Lấy các phần tử DOM
Sử dụng đối tượng document
để lấy các phần tử HTML. Các phương pháp sau thường được sử dụng:.
document.getElementById
document.getElementById
lấy phần tử với thuộc tính ID đã chỉ định.`.
1// Type is HTMLElement | null
2const element = document.getElementById('myElement');
3if (element) {
4 console.log(element.innerHTML);
5}
document.getElementById
lấy phần tử với ID đã chỉ định và cho phép bạn truy cập nội dung của nó nếu nó tồn tại.`.
document.querySelector
document.querySelector
lấy phần tử đầu tiên phù hợp với bộ chọn CSS.`.
1// Type is Element | null
2const element = document.querySelector('.myClass');
3if (element) {
4 console.log(element.textContent);
5}
document.querySelector
lấy phần tử đầu tiên phù hợp với bộ chọn CSS đã chỉ định và cho phép bạn truy cập nội dung của nó nếu nó tồn tại.`.
document.querySelectorAll
document.querySelectorAll
lấy tất cả các phần tử phù hợp với bộ chọn CSS.`.
1// Type is NodeListOf<HTMLDivElement>
2const elements = document.querySelectorAll('div');
3elements.forEach((el) => console.log(el.innerHTML));
document.querySelectorAll
lấy tất cả các phần tử phù hợp với bộ chọn CSS đã chỉ định và cho phép bạn truy cập nội dung của chúng thông qua việc lặp.`.
Xác minh kiểu phần tử
Trong TypeScript, việc xác định rõ ràng kiểu phần tử cho phép bạn sử dụng các thuộc tính và phương thức cụ thể hơn.
1const inputElement = document.getElementById('myInput') as HTMLInputElement;
2if (inputElement) {
3 console.log(inputElement.value); // Access the value property of the input element
4}
as
là toán tử xác nhận kiểu trong TypeScript, được sử dụng để nói rõ với trình biên dịch rằng hãy xử lý một giá trị như một kiểu cụ thể.- Trong TypeScript, bạn có thể sử dụng xác nhận kiểu để xử lý phần tử lấy được như một kiểu cụ thể và truy cập thuộc tính hoặc phương thức dành riêng cho kiểu đó.
Thao tác với DOM
Việc thao tác DOM được thực hiện thông qua các thuộc tính của phần tử. Điều này cho phép bạn linh hoạt kiểm soát việc thay đổi văn bản hoặc thuộc tính, áp dụng kiểu dáng và cập nhật nội dung hiển thị.
-
Thay đổi văn bản của phần tử
Bạn có thể thay đổi văn bản hoặc HTML của một phần tử bằng thuộc tính
textContent
hoặcinnerHTML
.
1const element = document.getElementById('myElement');
2if (element) {
3 element.textContent = 'New Text'; // Set the text content to 'New Text'
4}
- Bạn có thể sử dụng
textContent
hoặcinnerHTML
của một phần tử để thay đổi văn bản hiển thị hoặc nội dung HTML của nó.
-
Thay đổi kiểu hiển thị của phần tử
Bạn có thể thay đổi kiểu hiển thị nội dòng bằng thuộc tính
style
của phần tử.
1const element = document.getElementById('myElement');
2if (element) {
3 element.style.color = 'blue';
4 element.style.fontSize = '20px';
5}
- Đoạn mã này lấy một phần tử cụ thể, đổi màu chữ của nó thành màu xanh và đặt cỡ chữ thành 20px.
-
Thay đổi thuộc tính của phần tử
Nếu muốn thay đổi thuộc tính của phần tử, hãy dùng
setAttribute
.
1const link = document.querySelector('a');
2if (link) {
3 link.setAttribute('href', 'https://example.com');
4}
- Đoạn mã này thay đổi thuộc tính
href
của phần tử liên kết đầu tiên trên trang thànhhttps://example.com
.
-
Thao tác với lớp của phần tử
Để thêm hoặc xóa lớp của phần tử, hãy sử dụng
classList
.
1const element = document.getElementById('myElement');
2if (element) {
3 element.classList.add('active');
4 element.classList.remove('inactive');
5}
- Đoạn mã này thêm lớp
active
và xóa lớpinactive
khỏi một phần tử cụ thể.
Thêm và xóa phần tử DOM
Bạn cũng có thể thêm các phần tử mới hoặc xóa những phần tử hiện có. Điều này giúp có thể thay đổi cấu trúc trang một cách linh hoạt để phản hồi lại các thao tác của người dùng hoặc trạng thái của ứng dụng.
-
Tạo và thêm phần tử mới
Sử dụng
document.createElement
để tạo một phần tử mới và thêm vào DOM.
1const newDiv = document.createElement('div');
2newDiv.textContent = 'New Element'; // Set the text content to 'New Element'
3document.body.appendChild(newDiv); // Add the new element to the body
- Đoạn mã này tạo một phần tử
<div>
mới, đặt văn bản cho nó và thêm nó vào<body>
của trang.
-
Xóa phần tử
Để xóa một phần tử, hãy sử dụng phương thức
removeChild
hoặcremove
.
1const parentElement = document.getElementById('parentElement');
2const childElement = document.getElementById('childElement');
3if (parentElement && childElement) {
4 parentElement.removeChild(childElement); // Remove the child element
5}
6
7// Alternatively
8const element = document.getElementById('myElement');
9if (element) {
10 element.remove(); // Remove the element itself
11}
- Đoạn mã này cho thấy cách xóa phần tử con cụ thể khỏi phần tử cha của nó và cách xóa trực tiếp chính phần tử đó.
Thêm sự kiện
Trong TypeScript, bạn có thể thêm bộ lắng nghe sự kiện cho các phần tử để thực hiện các hành động dựa trên tương tác của người dùng.
1const button = document.getElementById('myButton');
2if (button) {
3 button.addEventListener('click', () => {
4 console.log('Button was clicked'); // Log when the button is clicked
5 });
6}
- Đoạn mã này thêm một lắng nghe sự kiện để hiển thị thông báo trong bảng điều khiển khi nút được nhấp.
- Bằng cách sử dụng
addEventListener
, bạn có thể lắng nghe và xử lý nhiều sự kiện khác nhau như nhấn chuột, di chuyển chuột và nhập bàn phím.
Những điểm cần lưu ý khi thao tác DOM trong TypeScript
Khi thao tác DOM với TypeScript, chú ý đến định nghĩa kiểu của phần tử và kiểm tra giá trị null
có thể giúp ngăn ngừa lỗi và cho phép bạn viết mã nguồn vững chắc.
-
Kiểm tra null
Vì một phần tử DOM có thể không tồn tại, nên bạn nên kiểm tra null trước khi thao tác với các phần tử trong TypeScript.
-
Xác minh kiểu rõ ràng
Khi thao tác với một phần tử cụ thể (ví dụ như
HTMLInputElement
), bạn thường cần sử dụng xác minh kiểu (as
) để chỉ định kiểu và sử dụng các thuộc tính đặc thù nhưvalue
.
Ghi nhớ những điều này, thao tác DOM với TypeScript cho phép bạn viết mã an toàn và dễ dự đoán hơn bằng cách kết hợp tính linh hoạt của JavaScript với tính an toàn về kiểu của TypeScript.
Bạn có thể làm theo bài viết trên bằng cách sử dụng Visual Studio Code trên kênh YouTube của chúng tôi. Vui lòng ghé thăm kênh YouTube.