2009-07-23 12 views
5

Mam następujący jQuery kod:Jquery: Dodawanie klasę nawet dziwne List-Elements

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

i następujący kod HTML:

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

Jednak jquery nie wydają się być zastosowane, ponieważ znaczniki li nie otrzymują właściwych klas (parzystych lub nieparzystych). Co ja robię źle? Dzięki

+0

wygląda dobrze do mnie (i działa). Zobaczmy twoje css. – ScottE

+0

Działa również dla mnie. –

Odpowiedz

10

To działa dobrze dla mnie. Jak myślisz, dlaczego nie działa w twoim kodzie?

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

Spróbuj usunąć przestrzeń pomiędzy addClass i (

samo z $ i swój selektor

Czy używając Firebug, jeśli jesteś, spójrz na HTML, i sprawdzić, czy nazwy klas są stosowane, czy nie. Jeśli tak, po prostu zapomniałeś połączyć swój arkusz stylów. Jeśli nie, to jest coś złego w twoim javascript.

+1

Spacja między nazwą funkcji a nawiasem jest całkowicie dopuszczalna. –

+0

, więc wydaje się ... hmm ... – peirix

+0

stosowany jest arkusz stylów, ale nie są stosowane żadne klasy – andrej

0

Po pierwsze, czy na pewno włożyłeś arkusz stylów do swojej strony? Często o tym zapominam. Po drugie, czy wstawiłeś plik jquery js na swoją stronę? Bardzo często o tym zapominam. Po trzecie, rób, co peirix mówi i powinno działać. Nie widzę, co w tym złego.

0

Czy możliwe jest utworzenie dynamicznego? W takim przypadku wywołanie, aby dodać klasę, nie powinno być gotowe(), ale na wywołanie zwrotne po wstawieniu li.

+0

i jak dodać klasę na oddzwonienie? – andrej

+0

, a na liście znajduje się rep: asp: repeater. Jednak myślałem, że będzie to nazywane "dynamicznie", czy też się mylę? – andrej

4

alternatywnie można użyć: .filter (": dziwny"). AddClass ("odd")