非表示のアイテムと表示されているアイテムのリストがあります。可視アイテムにはアクティブというクラスがあります。:nth-child(odd)
or -:nth-of-type(even)
をこれらの特定の可視アイテムにのみ適用しようとしていますが、結果は完全にランダムです。
私は期待しています:黄、緑、黄、緑、黄。
結果: 黄、黄、緑、黄、緑、緑。
クラス名とノードでフィルタリングできると思いました。しかし、明らかにそうではありません。
<ul>
<li>hide</li>
<li class="active">visible</li>
<li>hide</li>
<li class="active">visible</li>
<li class="active">visible</li>
<li>hide</li>
<li class="active">visible</li>
<li class="active">visible</li>
<li>hide</li>
<li class="active">visible</li>
</ul>
スタイル:
li {
background-color:red;
display:none;
}
li.active {
display:block;
}
li.active:nth-child(odd) {
background-color:yellow;
}
li.active:nth-child(even) {
background-color:green;
}
これを回避する方法はありますか?
編集:jQueryやその他のライブラリは使用できず、ネイティブjsのみを使用できます。実際には、画像とテキストで満たされた 50 以上のリスト項目があるため、DOM から非表示のものを削除して元に戻すことは、おそらく良い考えではありません。