2012-02-06 18 views
2

私はいくつかの動作を指示するいくつかのjavascriptで2列のdivを持っており、特定のdivクラスの背景色を交互にしたいと思います。代替div背景色

ここでは、この対処することになってjavascriptのだ:スタイルシートが別のdivの背景色を呼んで

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#faqlist div.faq-title:nth-child(odd)').addClass('alternate'); 
    }); 
</script> 

を:

div.alternate { background: #c1c1c1 } 

そして、ここではHTMLです:

<div id="faqlist"> 
<div class="faq-title"></div> 
<div class="faq-answer"></div> 
<div class="faq-title"></div> 
<div class="faq-answer"></div> 
<div class="faq-title"></div> 
<div class="faq-answer"></div> 
</div> 

右結果は、クラス "faq-title"のすべてのdivは#c1c1c1背景色を持っています、leadin私は何かが簡単でないことを信じている。 javascriptの示唆しているように、#fa1c1c1の背景色を持つように交互に表示される「faq-title」クラスのdivと、無視される「faq-answer」divだけが必要です。

jsFiddle:あなたが発見したとしてhttp://jsfiddle.net/inerdial/mRaRW/

+0

これはjQueryですか?もしそうなら、そのような質問におそらくタグ付けするべきです。 – millimoose

+1

私は問題を推測しているのは、セレクタが "クラス' .faq-title' *を持ち、*がその親の奇数番号の子であるdivを意味するということです。 " – millimoose

答えて

1

nth-childは親要素ではなく、特定のセレクタの結果(jquery documentationを参照)から、その番号を取ります。何をしたいん

使用:even、:

$('#faqlist div.faq-title:even') 
    .addClass('alternate'); 

http://jsfiddle.net/uJqPg/

注意(CSS仕様以下)nth-childは1ベースである一方、:evenが故にでも、0ベースであること/奇妙な不一致。また、:evenはjqueryの拡張であり、どのブラウザでもネイティブではありません。

+0

素晴らしい。正確に私が探していた解決策。ありがとう@Gabe。 – blackessej