Foros del Web » Programando para Internet » Jquery »

Asignar clases con JQuery dinamicamente

Estas en el tema de Asignar clases con JQuery dinamicamente en el foro de Jquery en Foros del Web. Hola, tengo un código similar al siguiente Código HTML: <div> Contenido </div> <div> Contenido </div> <div> Contenido </div> <div> Contenido </div> <div> Contenido </div> <div> ...
  #1 (permalink)  
Antiguo 24/10/2011, 11:38
 
Fecha de Ingreso: abril-2011
Ubicación: Distrito Federal
Mensajes: 83
Antigüedad: 13 años
Puntos: 9
Asignar clases con JQuery dinamicamente

Hola, tengo un código similar al siguiente

Código HTML:
<div>Contenido</div>
<div>Contenido</div>
<div>Contenido</div>
<div>Contenido</div>
<div>Contenido</div>
<div>Contenido</div> 
Será un blog, por lo que cada div que ven ahí se generará dinámicamente. Mi pregunta es: ¿Hay manera con JQuery de asignar clases dinamicamente para que quede así:

Código HTML:
<div class="uno">Contenido</div>
<div class="dos">Contenido</div>
<div class="tres">Contenido</div>
<div class="uno">Contenido</div>
<div class="dos">Contenido</div>
<div class="tres">Contenido</div> 
Espero darme a entender y que alguien sepa como hacer esto
  #2 (permalink)  
Antiguo 24/10/2011, 14:23
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Asignar clases con JQuery dinamicamente

El problema es poner la clase "uno", "dos", etc. Se podría hacer para unos cuantos, pero si pueden ser infinitos "div"...

Una forma sería la siguiente, aunque en este caso les pondríamos la clase "nombre-clase+número de div":
Código Javascript:
Ver original
  1. $(function(){
  2.     $('div').each(function(indice){
  3.         //console.log(indice);
  4.         $(this).addClass( 'clase-' + indice );
  5.     });
  6. });

En este caso los div resultantes serían así:
Código HTML:
Ver original
  1. <div class="clase-0">Contenido</div>
  2. <div class="clase-1">Contenido</div>
  3. <div class="clase-2">Contenido</div>
  4. <div class="clase-3">Contenido</div>
  5. <div class="clase-4">Contenido</div>
  6. <div class="clase-5">Contenido</div>

Si quisieras poner la clase "uno", "dos", etc. Podrías poner:
Código Javascript:
Ver original
  1. if ( indice == 0 )
  2. clase="uno";
  3. elseif(indice==1)
  4. clase="dos";
  5. ...

Pero de esa forma tendrías que poner muchas condiciones, es mejor poner un texto más un número.

Ten en cuenta que de esta forma estás cogiendo todos los "div" de la web, lo mejor que puedes hacer es meterlos dentro de otra capa y coger sólo los "div" que estén dentro de esa capa.
__________________
eZ Publish Developer Basic Legacy
eZ Publish Developer Basics (4.4)
Alojamientos rurales en España
  #3 (permalink)  
Antiguo 25/10/2011, 10:44
 
Fecha de Ingreso: abril-2011
Ubicación: Distrito Federal
Mensajes: 83
Antigüedad: 13 años
Puntos: 9
Respuesta: Asignar clases con JQuery dinamicamente

Cita:
Iniciado por Trublux Ver Mensaje
El problema es poner la clase "uno", "dos", etc. Se podría hacer para unos cuantos, pero si pueden ser infinitos "div"...

Una forma sería la siguiente, aunque en este caso les pondríamos la clase "nombre-clase+número de div":
Código Javascript:
Ver original
  1. $(function(){
  2.     $('div').each(function(indice){
  3.         //console.log(indice);
  4.         $(this).addClass( 'clase-' + indice );
  5.     });
  6. });

En este caso los div resultantes serían así:
Código HTML:
Ver original
  1. <div class="clase-0">Contenido</div>
  2. <div class="clase-1">Contenido</div>
  3. <div class="clase-2">Contenido</div>
  4. <div class="clase-3">Contenido</div>
  5. <div class="clase-4">Contenido</div>
  6. <div class="clase-5">Contenido</div>

Si quisieras poner la clase "uno", "dos", etc. Podrías poner:
Código Javascript:
Ver original
  1. if ( indice == 0 )
  2. clase="uno";
  3. elseif(indice==1)
  4. clase="dos";
  5. ...

Pero de esa forma tendrías que poner muchas condiciones, es mejor poner un texto más un número.

Ten en cuenta que de esta forma estás cogiendo todos los "div" de la web, lo mejor que puedes hacer es meterlos dentro de otra capa y coger sólo los "div" que estén dentro de esa capa.
Muchas gracias, creo que si era algo parecido. Aquí les dejo como lo hice por si alguien tiene mi mismo problema :D

Código HTML:
var i = 1;
    $("#herramientas").find("h2.trigger").each(function(){
        $(this).addClass("herramienta_"+i);
        if (i <= 4) {
        		i += 1;
        	}
        	else {
        		i = 1;
        	}

Etiquetas: clases, dinamicamente
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 20:19.