nth-child は、非表示のアイテムがあるとうまくプレイできないようです...期間。ここで例を見ることができます: http://jsfiddle.net/anAgent/FzBWn/。[テスト 2] ボタンをクリックして、非表示の値を含む行のコレクションに対してセレクターを実行します。以下の jQuery コードは、必要なものを選択する方法です。
CSS
.container {float:left;}
.row { display:block; border: 1px solid black; padding:10px; width:100px;}
.row.odd {border: 2px dotted red;background-color:yellow;}
.hidden {visibility:hidden;display:none;}
HTML
<div class="container">
<div id="1" class="row">Highlighted</div>
<div id="2" class="row"></div>
<div id="3" class="row hidden">I shouldn't be highlighted</div>
<div id="4" class="row"></div>
<div id="5" class="row">Highlighted</div>
<div id="6" class="row"></div>
<div id="7" class="row hidden">I shouldn't be highlighted</div>
<div id="8" class="row"></div>
<div id="9" class="row">Highlighted</div>
<div id="10" class="row"></div>
<div id="11" class="row"></div>
</div>
<div class="container">
<div id="1" class="row">Highlighted</div>
<div id="2" class="row"></div>
<div id="3" class="row "></div>
<div id="4" class="row">Highlighted</div>
<div id="5" class="row"></div>
<div id="6" class="row"></div>
<div id="7" class="row">Highlighted</div>
<div id="8" class="row"></div>
<div id="9" class="row"></div>
<div id="10" class="row">Highlighted</div>
<div id="11" class="row"></div>
</div>
jQuery
表示されているすべてのアイテムを取得し、それがリストの 3 番目のアイテムかどうかを調べます。
$('.row:visible').each(function(idx) {
$(this).toggleClass('odd',(idx%3 == 0));
});