Reemplazo de getElementById en Angular usando TypeScript

Muhammad Ibrahim Alvi 30 enero 2023
  1. el método document.getElementById() en TypeScript
  2. Use ElementRef como reemplazo de getElementById en Angular usando TypeScript
Reemplazo de getElementById en Angular usando TypeScript

Esta guía de tutorial proporciona una breve explicación del reemplazo de document.getElementById en Angular usando TypeScript.

Esto también proporciona los mejores métodos utilizados para getElementById en Angular con ejemplos de código. También aprenderemos el propósito del DOM querySelector en TypeScript.

Primero, aprendamos el método document.getElementById en TypeScript y por qué es popular entre la comunidad de desarrolladores.

el método document.getElementById() en TypeScript

El document.getElementById() es un método predefinido de JavaScript (así como TypeScript) disponible para la manipulación del objeto documento. Devuelve un elemento con un valor especificado y null si el elemento no existe.

El document.getElementById() es uno de los métodos más comunes y populares entre la comunidad de desarrolladores para HTML DOM.

El único punto vital a tener en cuenta es que si dos o más elementos tienen el mismo id, document.getElementById() devolverá el primer elemento.

Ahora, veamos algunos de los ejemplos de codificación para comprender mejor su propósito y uso.

Considere la etiqueta h1 con algún texto con una identificación de demo única. Ahora, en la sección scripts, si queremos apuntar a esa etiqueta en particular, usamos el método getElementById() disponible en el objeto document.

<!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>

Producción:

Salida usando getElementById para orientar una etiqueta

Ahora consideremos otro ejemplo dinámico: un campo de entrada toma un número y devuelve su valor de cubo.

<!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>

Producción:

Salida usando getElementById para tomar un número

Ahora, veamos el reemplazo de getElementById en Angular usando TypeScript.

Use ElementRef como reemplazo de getElementById en Angular usando TypeScript

El ElementRef de AngularJs es un contenedor alrededor de un elemento HTML, que contiene la propiedad nativeElement y mantiene la referencia al objeto DOM subyacente. Usando ElementRef, podemos manipular el DOM en AngularJs usando TypeScript.

Al usar ViewChild, obtenemos el ElementRef de un elemento HTML dentro de la clase del componente. Angular permite inyectar ElementRef del elemento directivo del componente cuando está siendo solicitado en el constructor.

Con el decorador @ViewChild, usamos la interfaz ElementRef dentro de la clase para obtener la referencia del elemento.

Considere el siguiente ejemplo de código en AngularJs en el archivo de main.component.html. Tenemos un botón con un evento y un div con una identificación única myName:

# angular

<div #myName></div>

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

Producción:

Botón HTML para obtener valor

Ejemplo 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";
    }
}

Producción:

Salida usando ElementRef para obtener referencia de entrada

Usando el decorador @ViewChild, obtenemos la referencia de la entrada con la ayuda de la interfaz ElementRef dentro de la clase. Luego cambiamos su valor usando la función getData() con esta referencia.

Ejemplo 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!";
    }
}

Producción:

Salida usando ElementRef para obtener referencia de entrada y cambiar texto

Esto obtiene la referencia del campo de entrada y cambia su texto interior al hacer clic en el botón.

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