Manipulacja DOM w TypeScript
Ten artykuł wyjaśnia, jak manipulować DOM w TypeScript.
Dowiesz się, jak manipulować elementami DOM oraz jak dodawać i usuwać elementy z drzewa DOM za pomocą przykładów kodu.
YouTube Video
Manipulacja DOM w TypeScript
Manipulacja DOM w TypeScript odbywa się podobnie jak w JavaScript, jednak TypeScript zapewnia sprawdzanie typów, co czyni operacje bezpieczniejszymi. DOM (Document Object Model) to model obiektowy umożliwiający programistyczną manipulację dokumentami HTML i XML. Pozwala na dostęp do stron wyświetlanych w przeglądarce, dodawanie lub usuwanie elementów oraz zmianę stylów.
Przedstawmy podstawowe metody manipulacji DOM przy użyciu TypeScript.
Pobieranie elementów DOM
Aby pobrać elementy HTML, użyj obiektu document
. Najczęściej używane są następujące metody:.
document.getElementById
document.getElementById
pobiera element o określonym atrybucie ID.`.
1// Type is HTMLElement | null
2const element = document.getElementById('myElement');
3if (element) {
4 console.log(element.innerHTML);
5}
document.getElementById
pobiera element o podanym ID i pozwala uzyskać dostęp do jego zawartości, jeśli istnieje.`.
document.querySelector
document.querySelector
pobiera pierwszy element pasujący do selektora CSS.`.
1// Type is Element | null
2const element = document.querySelector('.myClass');
3if (element) {
4 console.log(element.textContent);
5}
document.querySelector
pobiera pierwszy element pasujący do określonego selektora CSS i pozwala uzyskać dostęp do jego zawartości, jeśli istnieje.`.
document.querySelectorAll
document.querySelectorAll
pobiera wszystkie elementy pasujące do selektora CSS.`.
1// Type is NodeListOf<HTMLDivElement>
2const elements = document.querySelectorAll('div');
3elements.forEach((el) => console.log(el.innerHTML));
document.querySelectorAll
pobiera wszystkie elementy pasujące do określonego selektora CSS i pozwala uzyskać dostęp do ich zawartości poprzez iterację.`.
Asercja typu elementu
W TypeScript jawne zadeklarowanie typu elementu umożliwia korzystanie z bardziej specyficznych metod i właściwości.
1const inputElement = document.getElementById('myInput') as HTMLInputElement;
2if (inputElement) {
3 console.log(inputElement.value); // Access the value property of the input element
4}
- Słowo kluczowe
as
jest operatorem asercji typu w TypeScript, używanym do jawnego informowania kompilatora, że wartość powinna być traktowana jako określony typ. - W TypeScript możesz używać asercji typu, aby traktować pobrany element jako określony typ i uzyskać dostęp do właściwości lub metod specyficznych dla tego typu.
Manipulowanie DOM
Manipulacja DOM odbywa się za pomocą właściwości elementów. Pozwala to elastycznie kontrolować zmiany tekstu lub atrybutów, stosować style oraz aktualizować wyświetlaną treść.
-
Zmiana tekstu elementu
Tekst lub HTML elementu możesz zmienić za pomocą właściwości
textContent
lubinnerHTML
.
1const element = document.getElementById('myElement');
2if (element) {
3 element.textContent = 'New Text'; // Set the text content to 'New Text'
4}
- Możesz użyć
textContent
lubinnerHTML
elementu, aby zmienić wyświetlany tekst lub zawartość HTML.
-
Zmiana stylu elementu
Możesz modyfikować style inline przy pomocy właściwości
style
elementu.
1const element = document.getElementById('myElement');
2if (element) {
3 element.style.color = 'blue';
4 element.style.fontSize = '20px';
5}
- Ten kod pobiera konkretny element, zmienia kolor jego tekstu na niebieski i ustawia rozmiar czcionki na 20px.
-
Zmiana atrybutów elementu
Aby zmienić atrybuty elementu, użyj
setAttribute
.
1const link = document.querySelector('a');
2if (link) {
3 link.setAttribute('href', 'https://example.com');
4}
- Ten kod zmienia atrybut
href
pierwszego elementu linku na stronie nahttps://example.com
.
-
Manipulacja klasami elementów
Aby dodać lub usunąć klasy elementu, użyj
classList
.
1const element = document.getElementById('myElement');
2if (element) {
3 element.classList.add('active');
4 element.classList.remove('inactive');
5}
- Ten kod dodaje klasę
active
i usuwa klasęinactive
z określonego elementu.
Dodawanie i usuwanie elementów DOM
Możesz także dodawać nowe elementy lub usuwać istniejące. Umożliwia to dynamiczną zmianę struktury strony w odpowiedzi na działania użytkownika lub stan aplikacji.
-
Tworzenie i dodawanie nowych elementów
Użyj
document.createElement
, aby utworzyć nowy element i dodać go do 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
- Ten kod tworzy nowy element
<div>
, ustawia jego tekst i dodaje go do<body>
strony.
-
Usuwanie elementów
Aby usunąć element, użyj metod
removeChild
lubremove
.
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}
- Ten kod pokazuje, jak usunąć określony element potomny z jego rodzica oraz jak bezpośrednio usunąć sam element.
Dodawanie zdarzeń
W TypeScript możesz dodawać nasłuchiwacze zdarzeń do elementów, aby wykonywać akcje na podstawie interakcji użytkownika.
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}
- Ten kod dodaje nasłuchiwacz zdarzeń, który wyświetla wiadomość w konsoli po kliknięciu przycisku.
- Korzystając z
addEventListener
, możesz nasłuchiwać i obsługiwać różne zdarzenia, takie jak kliknięcia, ruchy myszy czy wprowadzanie z klawiatury.
Wskazówki dotyczące manipulacji DOM w TypeScript
Podczas manipulowania DOM za pomocą TypeScript, zwracanie uwagi na definicje typów elementów oraz sprawdzanie wartości null
może pomóc zapobiec błędom i pozwolić na pisanie solidnego kodu.
-
Sprawdzanie wartości null
Ponieważ element DOM może nie istnieć, przed manipulacją elementami w TypeScript zaleca się sprawdzenie, czy nie są one nullem.
-
Jawna asercja typu
Podczas operowania na konkretnym elemencie (na przykład
HTMLInputElement
), często stosuje się asercję (as
), aby określić typ i korzystać ze specyficznych właściwości, takich jakvalue
.
Pamiętając o tych zasadach, manipulacja DOM w TypeScript pozwala pisać bezpieczniejszy i bardziej przewidywalny kod, łącząc elastyczność JavaScript z bezpieczeństwem typów TypeScript.
Możesz śledzić ten artykuł, korzystając z Visual Studio Code na naszym kanale YouTube. Proszę również sprawdzić nasz kanał YouTube.