2009-07-23 12 views
5

Tengo el siguiente jquery-código:Jquery: Añadiendo una clase de incluso una extraña Lista-Elementos

<script type="text/javascript"> 
    $(document).ready(function() { 
     $ ('ul.image-list li:even').addClass ('even'); 
     $ ('ul.image-list li:odd').addClass ('odd'); 
    }); 
</script> 

y el código HTML siguiente:

<ul class="image-list"> 
<li>first element</li> 
<li>second element</li> 
... 
<li>last element</li> 
</ul> 

Sin embargo no parece que el jQuery para ser aplicado, porque las etiquetas-li no obtienen las clases apropiadas (par o impar). ¿Qué estoy haciendo mal? gracias

+0

se ve bien para mí (y obras). Veamos tu css. – ScottE

+0

Funciona para mí también. –

Respuesta

10

Esto funciona bien para mí. ¿Por qué crees que no funciona en tu código?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
    <title></title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $ ('ul.image-list li:even').addClass('even'); 
      $ ('ul.image-list li:odd').addClass('odd'); 
     }); 
    </script> 
    <style> 
     .even{ 
      background: gray; 
     } 
     .odd{ 
      color:red; 
     } 
    </style> 
</head> 
<body> 

<ul class="image-list"> 
    <li>first element</li> 
    <li>second element</li> 
    <li>third element</li> 
    <li>fourth element</li> 
    <li>fifth element</li> 
    <li>last element</li> 
</ul> 

</body> 
</html> 
0

intente eliminar el espacio entre addClass y (

mismo con $ y el selector de

¿Está utilizando Firebug, si es así, mira el HTML, y ver si los nombres de las clases son siendo aplicado o no. Si lo son, simplemente olvidaste vincular tu hoja de estilo. Si no lo son, entonces hay algo mal con su javascript.

+1

Un espacio entre el nombre de la función y el paréntesis es perfectamente aceptable. –

+0

por lo que parece ... hmm ... – peirix

+0

hoja de estilo se está aplicando, pero no se están aplicando clases – andrej

0

Antes de nada, ¿está seguro de que insertó su hoja de estilo en su página? A menudo me olvido de esto. En segundo lugar, ¿ha insertado el archivo jquery js en su página? Me olvido de esto muy a menudo. Tercero, haz lo que dice peirix y debería funcionar. No veo lo que está mal con eso.

0

¿Es posible crear el li dinámicamente? En ese caso, la llamada para agregar la clase no debe estar lista() sino en una devolución de llamada después de la inserción del li.

+0

y cómo agrego la clase en la devolución de llamada? – andrej

+0

y la lista se completa con un asp: repetidor. Sin embargo, pensé, esto se llamaría "dinámicamente", ¿o estoy equivocado? – andrej

4

puede utilizar alternativamente: .Filter (": extraño"). AddClass ("extraño")

Cuestiones relacionadas