2009-07-23 5 views
5

Ho il seguente jquery-code:Jquery: Aggiunta di una classe per anche una strana List-Elementi

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

e il seguente codice HTML:

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

Tuttavia il jquery non sembra essere applicato, perché i tag li non ottengono le classi appropriate (pari o dispari). Che cosa sto facendo di sbagliato? grazie

+0

guarda bene a me (e lavora). Vediamo il tuo css. – ScottE

+0

Funziona anche per me. –

risposta

10

Questo funziona bene per me. Perché pensi che non funzioni nel tuo codice?

<!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

provare a rimuovere lo spazio tra addClass e (

Stesso con $ e il vostro selettore

Si sta utilizzando Firebug, se, guarda il codice HTML, e vedere se i nomi delle classi sono essere applicato o meno. Se lo sono, hai semplicemente dimenticato di collegare il tuo foglio di stile. Se non lo sono, allora c'è qualcosa di sbagliato nel tuo javascript.

+1

Uno spazio tra il nome della funzione e la parentesi è perfettamente accettabile. –

+0

quindi sembra ... hmm ... – peirix

+0

foglio di stile viene applicato, ma nessuna classe viene applicata – andrej

0

Prima di tutto, sei sicuro di aver inserito il foglio di stile nella tua pagina? Spesso lo dimentico. In secondo luogo, hai inserito il file jquery js nella tua pagina? Lo dimentico molto spesso. In terzo luogo, fai ciò che dice Peirix e dovrebbe funzionare. Non vedo cosa c'è di sbagliato in questo.

0

È possibile che si crei il li dinamicamente? In questo caso la chiamata per aggiungere la classe non dovrebbe essere pronta() ma su una richiamata dopo l'inserimento di li.

+0

e come posso aggiungere la classe sul callback? – andrej

+0

e l'elenco viene popolato con un asp: ripetitore. Comunque pensavo, questo si sarebbe chiamato "dinamicamente", o sbaglio? – andrej

4

in alternativa è possibile utilizzare: .filter (": dispari"). AddClass ("dispari")

Problemi correlati