Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Variar selector en un bucle for

Estas en el tema de Variar selector en un bucle for en el foro de Jquery en Foros del Web. Salud y saludos. Tengo una matriz de datos que quiero trasladar a una tabla. Sé que con un doble bucle puedo recorrer la matriz para ...
  #1 (permalink)  
Antiguo 15/03/2021, 15:37
 
Fecha de Ingreso: noviembre-2014
Ubicación: Madrid
Mensajes: 81
Antigüedad: 10 años
Puntos: 1
Variar selector en un bucle for

Salud y saludos.
Tengo una matriz de datos que quiero trasladar a una tabla.
Sé que con un doble bucle puedo recorrer la matriz para trasladar los datos a la tabla.
Sería algo como esto:
Código:
		for(var i=0;i<20;i++){
			for(var j=0;j<20;j++){
			}
		}
En la tabla he puesto #id a cada celda con su fila y columna, por ejp. la primera celda tiene un id de #f1c1.
Mi problema es que quiero aprovechar esa nomenclatura tanto en la tabla como en el doble bucle. Es decir quiero aprovechar los valores i, j para mandar el dato a la celda.
Código:
		for(var i=0;i<20;i++){
			var fila = 1; var columna = 1;
			var valor = "$1f" + fila + "c" + columna;
			for(var j=0;j<20;j++){
				//y aquí pasaría el valor a la celda #f1c1
			}
		}
Verdaderamente es que no sé cómo concatenar la parte que está en rojo.
  #2 (permalink)  
Antiguo 15/03/2021, 17:28
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Variar selector en un bucle for

Si posees una matriz del tipo:

Código Javascript:
Ver original
  1. [["Juan", "Pérez", 25], ["Ana", "Gonzáles", 38], ["Luis", "Salas", 45]]

Y cada celda tiene una identificación del tipo:

Código HTML:
Ver original
  1. <tr>
  2.     <td id="f1c1"></td>
  3.     <td id="f1c2"></td>
  4.     <td id="f1c3"></td>
  5. </tr>
  6. <tr>
  7.     <td id="f2c1"></td>
  8.     <td id="f2c2"></td>
  9.     <td id="f2c3"></td>
  10. </tr>
  11. <tr>
  12.     <td id="f3c1"></td>
  13.     <td id="f3c2"></td>
  14.     <td id="f3c3"></td>
  15. </tr>

Solo necesitarías concatenar las letras f (de fila) y c (de columna) con el valor de cada contador.

Código Javascript:
Ver original
  1. let datos = [["Juan", "Pérez", 28, "Panamá"], ["María", "Galindo", 54, "Costa Rica"], ["Susan", "Ortiz", 41, "Holanda"]];
  2.  
  3. for (let i = 0, l = datos.length; i < l; i++){
  4.     for (let j = 0, m = datos[i].length; j < m; j++){
  5.         let id = "#f" + (i + 1) + "c" + (j + 1);
  6.         document.querySelector(id).textContent = datos[i][j];
  7.     }
  8. }

DEMO

Otra forma de hacer lo mismo empleando métodos de jQuery:

Código Javascript:
Ver original
  1. let datos = [["Juan", "Pérez", 28, "Panamá"], ["María", "Galindo", 54, "Costa Rica"], ["Susan", "Ortiz", 41, "Holanda"]];
  2.  
  3. $.each(datos, function(i, array){
  4.     $.each(array, function(j, valor){
  5.         let id = "#f" + (i + 1) + "c" + (j + 1);
  6.         $(id).text(valor);
  7.     });
  8. });

DEMO

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 16/03/2021, 16:42
 
Fecha de Ingreso: noviembre-2014
Ubicación: Madrid
Mensajes: 81
Antigüedad: 10 años
Puntos: 1
Respuesta: Variar selector en un bucle for

Ok. Tu aportación ha sido válida y muy importante. Muchas gracias.
A quienes les pueda servir de algo este ejemplo debo decirles que la duda era cómo concatenar los "textos" entre el bucle con sus variables y las ids de la tabla.
Lo digo por que el código que puse era un "poco" desastre.
Gracias de nuevo "filósofo" :)

Etiquetas: bucle, cadena, combinar, selector, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:49.