JavaScript - Usar una función anonima en el parámetro de otra función

 
Vista:
Imágen de perfil de Gio
Val: 368
Bronce
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Usar una función anonima en el parámetro de otra función

Publicado por Gio (79 intervenciones) el 27/10/2020 13:01:59
Tengo el siguiente HTML
1
2
3
<span class="txt1">Hola 1</span>
<span class="txt1">Hola 2</span>
<span class="txt1">Hola 3</span>

Y con javascript quiero hacer una funcion para cambiar los distintos atributos a los elementos con class "txt1", por ejemplo el color. Yo intento hacer lo siguiente:
1
2
3
4
5
6
7
8
9
function aplicar(_class, function f){
	var objeto = document.getElementsByClassName(_class);
	var objetoL = objeto.length;
 
	for(i=0;i<objetoL;i++){
		objeto[i].f;
	}
}
aplicar("txt1", function(){ style.color="#fff"; });

Si se fijan, quiero meter una función anónima a través del segundo parámetro de la función "aplicar" para que afecte al objeto que se almacena en la variable "objeto" (el objeto se almacena con éxito).

El objetivo es que con la función "aplicar" es modificar todos los elementos HTML que compartan una misma class con JavaScript.
Ejemplos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
aplicar("txt1", function (){ style.display="inline"; });
aplicar("txt1", function (){ style.border="solid #000" });
aplicar("txt1", function (){ innerHTML="HOLA!"; });
 
var cont=0;
function contador(reset = false){
    if(!reset){
        cont++;
        return cont;
    } else {
        cont=0;
    }
}
 
aplicar("txt1", function (){ id="text_"+contador(); });

Desde ya, muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Usar una función anonima en el parámetro de otra función

Publicado por Joel (895 intervenciones) el 27/10/2020 19:21:57
Hola Gio, lo tienes casi hecho!!!

Mira el pequeño cambio que he hecho en el js:
1
2
3
4
5
6
7
8
9
function aplicar(_class, f){
	var objeto = document.getElementsByClassName(_class);
	var objetoL = objeto.length;
 
	for(i=0;i<objetoL;i++){
		f(objeto[i]);
	}
}
aplicar("txt1", function(el){ el.style.color="#fff"; });
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Gio
Val: 368
Bronce
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Usar una función anonima en el parámetro de otra función

Publicado por Gio (79 intervenciones) el 28/10/2020 21:43:36
Muchas gracias! ahora me funciona perfectamente. Una preguntita más ¿tiene algún termino (nombre) esto de meter una función anónima a través de un parámetro de otra función?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Usar una función anonima en el parámetro de otra función

Publicado por joel (895 intervenciones) el 29/10/2020 10:20:27
creo que se llama callback
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar