Reemplazo de getElementById en Angular
-
Reemplazo de
getElementByIden Angular -
ElementRefen Angular -
Obtenga valor de la entrada usando
ElementRefen Angular
Presentaremos el reemplazo de la función getElementById en Angular.
También presentaremos la función ElementRef en Angular para obtener la referencia y el valor del elemento del documento de la entrada.
Reemplazo de getElementById en Angular
El método getElementById devuelve el elemento con el Atributo ID con el valor especificado. Este método es más común en HTML DOM y se usa casi cada vez que manipulamos, obtenemos información o un elemento de nuestro documento.
Debido a que getElementById es una función vanilla Javascript y usamos Typescript en Angular, el reemplazo de esta función en Typescript es ElementRef, que presentaremos en este tutorial.
ElementRef en Angular
El ElementRef es una clase que puede envolver un elemento DOM específico para mejorar los métodos y propiedades de un elemento nativo. Si definimos un elemento como ElementRef, podemos acceder a él como un objeto nativeElement.
Este artículo es compatible con Angular 4 a Angular 12.
Vamos a utilizar la interfaz ElementRef en una clase con el decorador @ViewChild para obtener la referencia del elemento.
En primer lugar, editaremos nuestra plantilla app.component.html y le agregaremos el siguiente código.
# angular
<div #myNameElem></div>
<button (click)="getValue()">Get Value</button>
Producción:

En el archivo app.component.ts, añadiremos lo siguiente.
#angular
import { Component, VERSION, ViewChild, ElementRef } from "@angular/core";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
name = "Angular " + VERSION.major;
@ViewChild("myNameElem") myNameElem: ElementRef;
getValue() {
console.log(this.myNameElem);
this.myNameElem.nativeElement.innerHTML = "I am changed by ElementRef & ViewChild";
}
}
Producción:

Obtenga valor de la entrada usando ElementRef en Angular
Ahora presentaremos cómo obtener el valor de una entrada usando ElementRef en Angular.
En primer lugar, editaremos nuestra plantilla app.component.html y le agregaremos el siguiente código.
# angular
<input type="text" name="name" #myNameElem />
<button (click)="getValue()">Get Value</button>
<button (click)="resetValue()">Reset</button>
Producción:

Ahora, en el archivo app.component.ts, añadiremos lo siguiente:
#angular
import { Component, VERSION, ViewChild, ElementRef } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
name = 'Angular ' + VERSION.major;
@ViewChild('myNameElem') myNameElem: ElementRef;
getValue() {
console.log(this.myNameElem.nativeElement.value);
}
resetValue() {
this.myNameElem.nativeElement.value = '';
}
}
Producción:

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.
LinkedIn