Mi jQuery no funciona. Estoy tratando de insertar CSS en elementos que tienen una clase adjunta.

Estoy tratando de insertar CSS en elementos que tienen una clase adjunta, de modo que esencialmente reemplazaré el color del elemento por el color dentro de una lista.

No funciona.

Aquí está el código:

<script type="text/javascript">
jQuery(document).ready( function() {    
    var i = 0,
    colors = ['green', 'red', 'orange', 'brown', 'purple'];
    function setColor() {
     jQuery('.fc-event-skin').each.eq(i).css('background-color', colors[i  % colors.length]);
          i++;
        if (i == 4) {
            i = 0;
        }
    }})
</script>

Reescribí esto, todavía no funciona:

jQuery(document).ready( function() {    
var i = 0,
    colors = ['green', 'red', 'orange', 'brown', 'purple'];

     jQuery('.fc-event-skin').each(function(i) {
         (this).css('background-color', colors[i  % colors.length]);
          i++;
    if (i == 4) {
        i = 0;
    }
     })

preguntado el 11 de junio de 12 a las 19:06

Por favor, publique el resto del código relevante. Todo lo que ha publicado hasta ahora son algunas variables y una función que no es llamada por nada. -

setColor() está definido, pero nunca llamado? -

(this) debiera ser $(this) or jQuery(this), Revisa la consola de errores!!! -

¡Gracias! ¡Lo siento, intento editar RÁPIDAMENTE! Ja ja. -

3 Respuestas

estás haciendo each() equivocada.

$('.fc-event-skin').each(function(i, elem) {
    $(this).css('background-color', colors[i % colors.length]);
});

Respondido el 11 de junio de 12 a las 19:06

No está llamando a la función setColor, al menos no en el código que ha proporcionado. Defina "no funciona". Haz algo de depuración. - Kevin B

Me deshice de setColor, me deshice de todas las funciones con nombre. El nuevo código está en la parte superior. Lo siento, estoy entrando en pánico, pensé que esto sería simple y he estado usando mucho más tiempo del que se me asignó. - steven matthews

Sería de ayuda si entendieras cómo el each en realidad funciona api.jquery.com/each - lúcuma

¡Funciona! yo era un idiota Y si. Todavía estoy practicando jQuery en lugar de JS estándar: steven matthews

Sí lo es. Déjame seleccionarlo. - steven matthews

Aquí hay una manera más fácil de lograr esto, en todo caso con fines de aprendizaje:

jQuery(document).ready( function() {    
    var colors = ['green', 'red', 'orange', 'brown', 'purple'];
    jQuery('.fc-event-skin').css("background-color",function(i) {
         return colors[i % colors.length];
    });
});

Respondido el 11 de junio de 12 a las 19:06

jQuery.each() ya incrementa i no es necesario que lo hagas. Esto debería funcionar:

jQuery(document).ready(function() {    
   var colors = ['green', 'red', 'orange', 'brown', 'purple'];

   jQuery('.fc-event-skin').each(function(i) {
       jQuery(this).css('background-color', colors[i]);
   });
});

Respondido el 11 de junio de 12 a las 19:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.