Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.1K
Vistas
how can i pass my div id in angular once i click the div

new to angular

I have 3 div's i need to give them each an ID once i click i need to pass the divs id as well:

<div (click)="ToBank(e)"></div>
 <div (click)="ToBank(e)"></div>
 <div (click)="ToBank(e)"></div>


ToBank(e){

 ///i need to get which is clicked?
    }

i dont know how can i give name to each div that i can get it in my function,i know in javascript we have getElementByID but here whats the best way?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

You can get the element you've clicked on using event.target

In your case.

ToBank(e){
    let target = e.target;
    }

There are more details about events here: https://developer.mozilla.org/en-US/docs/Web/API/Event/target

over 4 years ago · Santiago Trujillo Denunciar

0

In angular you don't need to use ids, instead you can use Template Variables.

These are created has follows:

<div #divOne (click)="ToBank(e)"></div>
<div #divTwo (click)="ToBank(e)"></div>
<div #divThree (click)="ToBank(e)"></div>

Then you can pass the variable directly:

<div #divOne (click)="ToBank(e, divOne)"></div>
<div #divTwo (click)="ToBank(e, divTwo)"></div>
<div #divThree (click)="ToBank(e, divThree)"></div>

If you want to access them in your component directly, you can use the ViewChild decorator to do so. Keep in mind that they will only be available in the AfterViewInit lifecycle hook.

over 4 years ago · Santiago Trujillo Denunciar

0

You can pass the Event object to your method using the $event keyword

<div (click)="ToBank($event)"></div>

and then use it to set the div's id.

ToBank(event) {
  event.target.id = 'nyDiv';
}

As far as I understand, you also want to pass the ids to the ToBank() method. You can do it by adding a second parameter

ToBank(event, id) {
  event.target.id = id;
}

and then providing the ids in the second arguments.

<div (click)="ToBank($event, 'id1')"></div>
<div (click)="ToBank($event, 'id2')"></div>
<div (click)="ToBank($event, 'id3')"></div>

Using template variables, you can pass the DOM element without having to pass the entire Event object.

<div #divOne (click)="ToBank(divOne, 'id1')"></div>
<div #divTwo (click)="ToBank(divTwo, 'id2')"></div>
<div #divThree (click)="ToBank(divThree, 'id3')"></div>
ToBank(element, id) {
  element.id = id;
}

Another approach is to store the current ids in a property

<div id="{{ ids[0] }}" (click)="ToBank(0, 'id1')"></div>
<div id="{{ ids[1] }}" (click)="ToBank(1, 'id2')"></div>
<div id="{{ ids[2] }}" (click)="ToBank(2, 'id3')"></div>
ids = ['', '', '']; // no ids at first

ToBank(arrayIndex, id) {
  this.ids[arrayIndex] = id;
}

or make them depend on a certain property using the ternary operator.

<div id="{{ conditions[0] ? 'id1' : '' }}" (click)="ToBank(0)"></div>
<div id="{{ conditions[1] ? 'id2' : '' }}" (click)="ToBank(1)"></div>
<div id="{{ conditions[2] ? 'id3' : '' }}" (click)="ToBank(2)"></div>
conditions = [false, false, false]; // no ids at first

ToBank(arrayIndex) {
  this.conditions[arrayIndex] = true;
}

Note that you normally do not need to use getElementById() and alike in Angular. Setting the id only really makes sense if you have some styles for it, but in that case, a class is probably better.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda