getElementById-Ersetzung in Angular mit TypeScript

Muhammad Ibrahim Alvi 15 Februar 2024
  1. Die document.getElementById()-Methode in TypeScript
  2. Verwendung von ElementRef als getElementById-Ersatz in Angular mit TypeScript
getElementById-Ersetzung in Angular mit TypeScript

Dieser Tutorial-Leitfaden erklärt kurz die Ersetzung document.getElementById in Angular mit TypeScript.

Hier finden Sie auch die besten Methoden zum getElementById in Angular mit Codebeispielen. Wir lernen auch den Zweck des DOM querySelector in TypeScript kennen.

Lassen Sie uns zunächst die Methode document.getElementById in TypeScript kennenlernen und warum sie in der Entwickler-Community beliebt ist.

Die document.getElementById()-Methode in TypeScript

Das document.getElementById() ist eine vordefinierte JavaScript- (wie auch TypeScript-) Methode, die für die Manipulation des document-Objekts zur Verfügung steht. Es gibt ein Element mit einem bestimmten Wert und null zurück, wenn das Element nicht existiert.

Das document.getElementById() ist eine der gebräuchlichsten und beliebtesten Methoden in der Entwicklergemeinschaft für das HTML-DOM.

Der einzige wichtige Punkt, den Sie beachten sollten, ist, dass, wenn zwei oder mehr Elemente dieselbe ID haben, document.getElementById() das erste Element zurückgibt.

Sehen wir uns nun einige der Codierungsbeispiele an, um ihren Zweck und ihre Verwendung besser zu verstehen.

Betrachten Sie das h1-Tag mit etwas Text mit einer eindeutigen demo-ID. Wenn wir nun im Abschnitt scripts auf dieses bestimmte Tag abzielen möchten, verwenden wir die Methode getElementById(), die im Objekt document verfügbar ist.

<!DOCTYPE html>
<html>
<body>

<h1 id="demo">The Document Object</h1>
<h2>The getElementById() Method</h2>
<script>
    document.getElementById("demo").style.color = "red";
</script>

</body>
</html>

Ausgabe:

Ausgabe mit getElementById zum Targeting eines Tags

Betrachten wir nun ein weiteres dynamisches Beispiel: Ein Eingabefeld nimmt eine Zahl und gibt ihren Würfelwert zurück.

<!DOCTYPE html>
<html>
<body>

<form>
    Enter No:<input type="text" id="number" name="number"/><br/>
    <input type="button" value="cube" onclick="getcube()"/>
</form>

<script>
    function getcube(){
        var number=document.getElementById("number").value;
        alert(number*number*number);
    }
</script>

</body>
</html>

Ausgabe:

Ausgabe mit getElementById, um eine Zahl zu nehmen

Sehen wir uns nun die Ersetzung getElementById in Angular mit TypeScript an.

Verwendung von ElementRef als getElementById-Ersatz in Angular mit TypeScript

Die ElementRef von AngularJs ist ein Wrapper um ein HTML-Element, der die Eigenschaft nativeElement enthält und die Referenz auf das zugrunde liegende DOM-Objekt hält. Mit ElementRef können wir das DOM in AngularJs mit TypeScript manipulieren.

Durch die Verwendung von ViewChild erhalten wir die ElementRef eines HTML-Elements innerhalb der Komponentenklasse. Angular ermöglicht das Einfügen von ElementRef des Direktivenelements der Komponente, wenn es im Konstruktor angefordert wird.

Mit dem Decorator @ViewChild verwenden wir die Schnittstelle ElementRef innerhalb der Klasse, um die Elementreferenz zu erhalten.

Betrachten Sie das folgende Codebeispiel in AngularJs in der Datei main.component.html. Wir haben eine Schaltfläche mit einem Ereignis und einem Div mit einer eindeutigen ID myName:

# angular

<div #myName></div>

<button (click)="getData()">Get Value</button>

Ausgabe:

HTML-Schaltfläche zum Abrufen von Werten

Beispiel 1 (app.component.ts):

#angular
import { Component, VERSION, ViewChild, ElementRef } from "@angular/core";

@Component({
    selector: "my-app",
    templateUrl: "./main.component.html",
    styleUrls: ["./app.component.css"]
})

export class AppComponent {
    name = "Angular " + VERSION.major;
    @ViewChild("myName") myName: ElementRef;
    getData() {
        console.log(this.myName);
        this.myName.nativeElement.innerHTML = "I am changed by ElementRef & ViewChild";
    }
}

Ausgabe:

Ausgabe mit ElementRef zum Abrufen der Referenz der Eingabe

Mit dem Decorator @ViewChild erhalten wir die Referenz der Eingabe mit Hilfe der Schnittstelle ElementRef innerhalb der Klasse. Mit dieser Referenz ändern wir dann seinen Wert mit der Funktion getData().

Beispiel 2 (app.component.ts):

import { Component, ViewChild, ElementRef, AfterViewInit } from "@angular/core";

@Component({
    selector: "my-app",
    templateUrl: "./app.component.html",
    styleUrls: ["./app.component.css"]
})
export class AppComponent implements AfterViewInit {
    name = "Angular";

    @ViewChild("ipt", { static: true }) input: ElementRef;

    ngAfterViewInit() {
        console.log(this.input.nativeElement.value);
    }

    onClick() {
        this.input.nativeElement.value = "test!";
    }
}

Ausgabe:

Ausgabe unter Verwendung von ElementRef, um eine Referenz der Eingabe zu erhalten und Text zu ändern

Dieser erhält die Referenz des Eingabefeldes und ändert seinen Innentext beim Klick auf die Schaltfläche.

Muhammad Ibrahim Alvi avatar Muhammad Ibrahim Alvi avatar

Ibrahim is a Full Stack developer working as a Software Engineer in a reputable international organization. He has work experience in technologies stack like MERN and Spring Boot. He is an enthusiastic JavaScript lover who loves to provide and share research-based solutions to problems. He loves problem-solving and loves to write solutions of those problems with implemented solutions.

LinkedIn