DOM-manipulation i TypeScript
Denne artikel forklarer DOM-manipulation i TypeScript.
Du vil lære, hvordan man manipulerer DOM-elementer, og hvordan man tilføjer eller fjerner elementer fra DOM-træet gennem kodeeksempler.
YouTube Video
DOM-manipulation i TypeScript
DOM-manipulation i TypeScript udføres på samme måde som i JavaScript, men TypeScript tilbyder typekontrol, hvilket gør operationerne mere sikre. DOM (Document Object Model) er en objektmodel, der bruges til programmatisk at manipulere HTML- og XML-dokumenter. Det gør det muligt at tilgå sider, der vises i browseren, tilføje eller fjerne elementer eller ændre stilarter.
Lad os introducere de grundlæggende metoder til DOM-manipulation med TypeScript.
Hentning af DOM-elementer
Brug document
-objektet til at hente HTML-elementer. Følgende metoder bruges ofte:.
document.getElementById
document.getElementById
henter elementet med det angivne ID-attribut.`.
1// Type is HTMLElement | null
2const element = document.getElementById('myElement');
3if (element) {
4 console.log(element.innerHTML);
5}
document.getElementById
henter elementet med det angivne ID og giver dig mulighed for at få adgang til dets indhold, hvis det findes.`.
document.querySelector
document.querySelector
henter det første element, der matcher CSS-selektoren.`.
1// Type is Element | null
2const element = document.querySelector('.myClass');
3if (element) {
4 console.log(element.textContent);
5}
document.querySelector
henter det første element, der matcher den angivne CSS-selektor, og giver dig mulighed for at få adgang til dets indhold, hvis det findes.`.
document.querySelectorAll
document.querySelectorAll
henter alle elementer, der matcher CSS-selektoren.`.
1// Type is NodeListOf<HTMLDivElement>
2const elements = document.querySelectorAll('div');
3elements.forEach((el) => console.log(el.innerHTML));
document.querySelectorAll
henter alle elementer, der matcher den angivne CSS-selektor, og gør det muligt at få adgang til deres indhold gennem iterering.`.
Elemttypetilskrivelse (Type Assertion)
I TypeScript kan du eksplicit angive typen af et element, hvilket gør det muligt at bruge mere specifikke metoder og egenskaber.
1const inputElement = document.getElementById('myInput') as HTMLInputElement;
2if (inputElement) {
3 console.log(inputElement.value); // Access the value property of the input element
4}
as
-nøgleordet er en typeassertionsoperator i TypeScript, som bruges til eksplicit at fortælle compileren, at en værdi skal behandles som en bestemt type.- I TypeScript kan du bruge typeassertioner til at behandle det hentede element som en bestemt type og få adgang til egenskaber eller metoder, der er specifikke for den type.
Manipulation af DOM
Manipulation af DOM'en udføres gennem elementernes egenskaber. Dette giver dig mulighed for fleksibelt at kontrollere ændringer af tekst eller attributter, anvende stilarter og opdatere vist indhold.
-
Ændring af et elements tekst
Du kan ændre teksten eller HTML'en for et element ved at bruge dets
textContent
ellerinnerHTML
.
1const element = document.getElementById('myElement');
2if (element) {
3 element.textContent = 'New Text'; // Set the text content to 'New Text'
4}
- Du kan bruge
textContent
ellerinnerHTML
af et element til at ændre den viste tekst eller HTML-indholdet.
-
Ændring af et elements stil
Du kan ændre inline-stilarter ved at bruge elementets
style
-egenskab.
1const element = document.getElementById('myElement');
2if (element) {
3 element.style.color = 'blue';
4 element.style.fontSize = '20px';
5}
- Denne kode henter et specifikt element, ændrer dets tekstfarve til blå og sætter skrifttypestørrelsen til 20px.
-
Ændring af et elements attributter
Hvis du vil ændre et elements attributter, brug
setAttribute
.
1const link = document.querySelector('a');
2if (link) {
3 link.setAttribute('href', 'https://example.com');
4}
- Denne kode ændrer
href
-attributten for det første linkelement på siden tilhttps://example.com
.
-
Manipulation af elementklasser
For at tilføje eller fjerne elementklasser, brug
classList
.
1const element = document.getElementById('myElement');
2if (element) {
3 element.classList.add('active');
4 element.classList.remove('inactive');
5}
- Denne kode tilføjer klassen
active
og fjerner klasseninactive
fra et specifikt element.
Tilføjelse og fjernelse af DOM-elementer
Du kan også tilføje nye elementer eller fjerne eksisterende. Dette gør det muligt dynamisk at ændre sidens struktur som reaktion på brugerhandlinger eller applikationens tilstand.
-
Oprettelse og tilføjelse af nye elementer
Brug
document.createElement
til at oprette et nyt element og tilføje det til DOM'en.
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
- Denne kode opretter et nyt
<div>
-element, sætter dets tekst og tilføjer det til sidens<body>
.
-
Fjernelse af elementer
For at fjerne et element, brug metoderne
removeChild
ellerremove
.
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}
- Denne kode viser, hvordan man fjerner et bestemt barnelement fra dets forælder, og hvordan man fjerner selve elementet direkte.
Tilføjelse af events
I TypeScript kan du tilføje event listeners til elementer for at udføre handlinger baseret på brugerinteraktioner.
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}
- Denne kode tilføjer en event listener, der viser en besked i konsollen, når knappen bliver klikket på.
- Ved at bruge
addEventListener
kan du lytte efter og håndtere forskellige events som klik, musebevægelser og tastaturinput.
Bemærkninger til DOM-manipulation i TypeScript
Når du manipulerer DOM'en med TypeScript, kan opmærksomhed på elementtypers definitioner og null
-kontrol hjælpe med at forhindre fejl og gøre det muligt at skrive robust kode.
-
Null-tjek
Fordi et DOM-element måske ikke eksisterer, anbefales det at udføre et null-tjek, før man manipulerer elementer i TypeScript.
-
Eksplicit type assertion
Når du arbejder med et specifikt element (f.eks. et
HTMLInputElement
), er det almindeligt at bruge en type assertion (as
) for at angive typen og bruge element-specifikke egenskaber somvalue
.
Hvis du husker dette, gør DOM-manipulation med TypeScript det muligt at skrive sikrere og mere forudsigelig kode ved at kombinere JavaScripts fleksibilitet med TypeScripts typesikkerhed.
Du kan følge med i ovenstående artikel ved hjælp af Visual Studio Code på vores YouTube-kanal. Husk også at tjekke YouTube-kanalen.