Foros del Web » Programando para Internet » Jquery »

Repetir 15 veces un bucle con asignación de variables

Estas en el tema de Repetir 15 veces un bucle con asignación de variables en el foro de Jquery en Foros del Web. Hola a todos, Quiero convertir un trozo de código para que lo repita 15 veces con un bucle, entiendo que puede servir un "FOR". Me ...
  #1 (permalink)  
Antiguo 23/01/2017, 04:39
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 4 meses
Puntos: 2
Exclamación Repetir 15 veces un bucle con asignación de variables

Hola a todos,
Quiero convertir un trozo de código para que lo repita 15 veces con un bucle, entiendo que puede servir un "FOR". Me sería fácil si no fuera por que tengo que cambiar también variables y referencias a IDs dentro de ese bucle.
El código es el siguiente:
Código JQUERY:
Ver original
  1. var bloque1 =  $("#acordion1 input[type='checkbox']:checked").length
  2.             $("#display1").html("Total checkeados  = " + bloque1 );
  3.             if(bloque1!=4){
  4.                 jQuery('#ok1').bootstrapSwitch('disabled', false);
  5.                 jQuery('#ok1').bootstrapSwitch('state', false);
  6.             }

Este bucle hay que repetirlo 15 veces pero además hay que modificar las variables también que hacen referencia a ese número. Por ejemplo:

En la vuelta1 las variables y referencias a ids tienen que tener 1 al final:
  • bloque1
  • acordion1
  • display1
  • ok1

En la vuelta2 las variables y referencias a ids tienen que tener 2 al final:
  • bloque2
  • acordion2
  • display2
  • ok2

Y así sucesivamente... Creo que lo correcto es generar una variable "i" e ir añadiéndosela a cada elemento variable o referencia a id, y ahí es donde me pierdo.

Código JQUERY:
Ver original
  1. for (var i=0; i<16; i++) {
  2.     //Aquí mi código
  3. }

Por ejemplo para declarar una variable "bloque1,2,3, etc." con el bucle?

Código JQUERY:
Ver original
  1. var bloque+i

Para el valor id creo que lo tengo más fácil:

Código JQUERY:
Ver original
  1. $("#acordion[B]+i[/B] input[type='checkbox']:checked").length

¿Voy bien?
Gracias!!
  #2 (permalink)  
Antiguo 23/01/2017, 05:26
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Repetir 15 veces un bucle con asignación de variables

Creo que voy avanzando! ufff!

Código JQUERY:
Ver original
  1. var bloque = "bloque" + i;
  2.                 //var acordion = "acordion" + i;
  3.                 bloque =  $("#acordion"+i+" input[type='checkbox']:checked").length
  4.                 //alert (bloque1);
  5.                 $("#display"+i+"").html("Total checkeados  = " + bloque );
  6.                 if(bloque!=4){
  7.                     jQuery("#ok"+i+"").bootstrapSwitch('disabled', false);
  8.                     jQuery("#ok"+i+"").bootstrapSwitch('state', false);
  9.                 }

¿Alguna opción mejor?
Graciaaas!
  #3 (permalink)  
Antiguo 23/01/2017, 05:35
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Repetir 15 veces un bucle con asignación de variables

Por otra parte, he visto un fallo en mi código y es que cada bloque tiene un número distinto de elementos:
  • Bloque1: 4 elementos
  • Bloque2: 6 elementos
  • Bloque3: 4 elementos
  • Bloque4: 5 elementos
  • etc.

Hago la validación aquí:
Código JQUERY:
Ver original
  1. if(bloque1!=4]){
  2.                 jQuery('#ok1').bootstrapSwitch('disabled', false);
  3.                 jQuery('#ok1').bootstrapSwitch('state', false);
  4.             }

Tengo que comprobar según el bloque ese número de elementos y ahora tal y como tengo el código no me vale... ufff.... un CASE tal vez?

Última edición por majete; 23/01/2017 a las 05:45
  #4 (permalink)  
Antiguo 23/01/2017, 14:06
Avatar de siddartha23  
Fecha de Ingreso: septiembre-2013
Mensajes: 357
Antigüedad: 10 años, 6 meses
Puntos: 39
Respuesta: Repetir 15 veces un bucle con asignación de variables

Es más practico si en vez de usar id's usas una sola clase y luego iteras sobre cada bloque usando $.each, así como lo tienes actualmente cada vez que modifiques la vista, agregando o quitando un bloque, también tienes que editar la lógica. Recorriendo bloques con la misma clase no sucedería eso.

Aunque tu última consulta no es muy clara, yo diría que sí, puedes usar switch pero tambien ten en cuenta que puedes usar operadores lógicos: if(bloque !=4 || bloque!=5 || etc)
__________________
velarde23.com - Soluciones Web
  #5 (permalink)  
Antiguo 24/01/2017, 05:12
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Repetir 15 veces un bucle con asignación de variables

Cita:
Iniciado por siddartha23 Ver Mensaje
Es más practico si en vez de usar id's usas una sola clase y luego iteras sobre cada bloque usando $.each, así como lo tienes actualmente cada vez que modifiques la vista, agregando o quitando un bloque, también tienes que editar la lógica. Recorriendo bloques con la misma clase no sucedería eso.

Aunque tu última consulta no es muy clara, yo diría que sí, puedes usar switch pero tambien ten en cuenta que puedes usar operadores lógicos: if(bloque !=4 || bloque!=5 || etc)
La lógica la entiendo y estoy de acuerdo en que es lo correcto, pero mi nivel de programación no da para tanto y aunque quizás si que pueda montar un código que recorra todos los elementos de una clase (creo que tengo algo por ahí montado), no sé cómo trabajar con más clases para hacer acciones diferentes sin identificarlos de forma única con ID.

¿Sabrías decirme alguna página con más información sobre acciones similares? Te lo agradecería.
Saludos!
  #6 (permalink)  
Antiguo 24/01/2017, 09:22
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Repetir 15 veces un bucle con asignación de variables

He encontrado algo que creo que puede tener mucha utilidad en lo que busco. Es una forma de verificar si todos los checkboxes están clickados:

Código JQUERY:
Ver original
  1. var numberOfChecked = $('input:checkbox:checked').length;
  2. var totalCheckboxes = $('input:checkbox').length;
  3. var numberNotChecked = totalCheckboxes - numberOfChecked;

Si consigo que esta validación la haga por cada grupo de forma independiente, podría evitar tener que validar con CASE o con otro método los 15 grupos. Sería genial! Voy a ver si puedo trabajar sobre eso y comento.

Saludos

Etiquetas: bucle, repetir, variables, veces
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:13.