2012-03-26 7 views
0

jQueryのeq()プロパティと複数選択の方法について、いくつか質問があります。jquery eq()とループする

例: 私は15項目のリストを持っています。 1番、6番、11番の各アイテムに背景色をつけたい。 2番目、7番目、12番目の背景色があり、3番目、8番目、13番目に背景色などがあります。

私はeq()プロパティを使っていますが、誰かが新しいリスト項目を追加するたびに、jQueryの背景色を手動で追加したくないのです。

私のリストが大きくなる必要がある場合、次の色はその背後の5色と一致します。 したがって、16番目のリスト項目は1番目と同じ背景が必要です。

それは意味がありますか?

jQueryでこれをどのように達成できますか?ループ?私はこれをどうやってやるのだろう?

ありがとうございます。

答えて

0

:nth-child代わりの当量(使用してみてください

。あなたはスタイリングのためのCSSを使用する必要があり、一般的に

DEMO

$(document).ready(function() { 
    $('#myList li:nth-child(5n+1)').addClass('pink'); 
    $('#myList li:nth-child(5n+2)').addClass('blue'); 
    $('#myList li:nth-child(5n+3)').addClass('yellow'); 
}); 
+0

ありがとう、これは私が探していた解決策です。 n番目の子供のことは私をトリップしていましたが、私はそれを理解しています。 – ClosDesign

0

.each()を使用して、要素インデックスにアクセスすることもできます。インデックスにモジュロを適用して、どの行ルールを適用するかを決定できます。

0

cssを使用すると純粋にダウンすることができます。そして、最も重要なことに、CSSは動的に追加された要素に対しても機能します。

:nth-child({ number expression | odd | even }) { 
    declaration block 
} 

第2、第3などの要素を選択し、必要なスタイルを追加する適切な式を指定します。現代のすべてのブラウザでサポートされています。

など。 1st、6th、11thを選択するには...これを使用します。

:nth-child(5n + 1) { 
    ... 
} 
+0

免責事項: 'n番目の-child'(CSS)は、IE6-8では動作しません。 – Blazemonger

0

、以下を参照してください。しかし、あなたはCSSを使用するための任意のオプションを持っていない場合は、そのような何かを試すことができます。

$('ul#list li').css('background-color', function(idx) { 
    switch (idx % 5) { 
     case 0: return '#000';  
     case 1: return '#111';     
     case 2: return '#222'; 
     case 3: return '#333'; 
     case 4: return '#444'; 
     case 5: return '#555'; 
     default: return '#000'; 
    } 
}); 

http://codepen.io/nok/pen/ZBXJeJ