2009-07-23 26 views
5

Tôi có jquery-mã sau:Jquery: Thêm một lớp học để thậm chí là một số lẻ List-Elements

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

và html sau:

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

Tuy nhiên, jquery dường như không được được áp dụng, bởi vì các thẻ li không nhận được các lớp thích hợp (ngay cả hoặc lẻ). Tôi đang làm gì sai? nhờ

+0

Trông tốt với tôi (và các công trình). Hãy xem css của bạn. – ScottE

+0

Làm việc cho tôi. –

Trả lời

10

Điều này làm việc tốt cho tôi. Tại sao bạn nghĩ rằng nó không hoạt động trong mã của bạn?

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

Cố gắng loại bỏ các khoảng trống giữa addClass(

Cùng với $ và chọn của bạn

Bạn đang sử dụng Firebug, nếu bạn đang có, nhìn vào HTML, và xem nếu tên lớp là được áp dụng hay không. Nếu có, bạn chỉ cần quên liên kết biểu định kiểu của mình. Nếu không, thì có lỗi với javascript của bạn.

+1

Một khoảng cách giữa tên hàm và dấu ngoặc đơn là hoàn toàn có thể chấp nhận được. –

+0

vì vậy có vẻ như ... hmm ... – peirix

+0

tờ định kiểu đang được áp dụng, nhưng không có lớp nào đang được áp dụng – andrej

0

Trước hết, bạn có chắc chắn đã chèn tờ mẫu vào trang của mình không? Tôi thường quên điều này. Thứ hai, bạn đã chèn tệp jquery js vào trang của mình chưa? Tôi quên điều này rất thường xuyên. Thứ ba, làm những gì peirix nói và nó sẽ làm việc. Tôi không thấy có gì sai với nó.

0

Có thể bạn tự động tạo li không? Trong trường hợp đó, lệnh gọi để thêm lớp không được sẵn sàng() nhưng trên một cuộc gọi lại sau khi chèn li.

+0

và làm cách nào để thêm lớp học trên gọi lại? – andrej

+0

và danh sách được điền với một asp: repeater. Tuy nhiên tôi nghĩ, điều này sẽ được gọi là "động", hay tôi sai? – andrej

4

bạn có thể lựa chọn sử dụng: .filter (": lẻ"). AddClass ("lẻ")

Các vấn đề liên quan