применение фона для первого и каждой третьей строки в динамически сгенерированной таблице

У меня есть таблица, в которой ее строки динамически генерируются. Я скрываю вторую строку, поэтому пользователь может расширить эту строку, если он или она захочет сделать это. Мне нужно иметь переменный фон для каждой первой и третьей строки, а вторая строка примет цвет фона строки перед этим. Вот изображение, которое поможет объяснить:

введите описание изображения здесь

В настоящее время я использую CSS: (Предоставлено из @rusmus)

.tbody tr:nth-child(4n), tbody tr:nth-child(4n- 1){ background-color: #FF0000; } 

И вот ссылка на его рабочий пример: http://jsfiddle.net/Lutkz/1/

По какой-то причине, однако, он не применяет цвет к тому, как он был затронут, как jsfiddle

Сторона примечания: вся таблица находится в foreach (), которая отображает каждую строку из базы данных в таблицу.

Код таблицы:

  <div class="table-wrapper" id="monthly-payers"> <table border="0" cellpadding="0" cellspacing="0" class="portfolio table table-striped-improved"> <thead> <tr> <th class="persist essential security">Security</th> <th class="persist essential">Symbol</th> <th class="optional">Number<br>of Shares</th> <th class="optional">Cost<br>Basis</th> <th>Current<br>Price</th> <th>Stock<br />Return %</th> <th>Buy<br>Under</th> <th>Dividend<br>Yield</th> <th>Ex-Dividend<br>Date</th> <th class="persist">Payout<br>Date</th> <th>Cumulative<br>Dividend</th> </tr> </thead> <tbody> <?php if( isset($open_trades['monthly-payers']) && !empty($open_trades['monthly-payers']) ){ ?> <?php foreach( $open_trades['monthly-payers'] as $trade ){ $numShares = empty($trade['num_shares'])? 1 : intval($trade['num_shares']); ?> <tr> <td><?php echo $trade['security']; ?></td> <td><?php echo $trade['symbol']; ?></td> <td><?php echo !empty($trade['num_shares']) ? $trade['num_shares'] : '&ndash;'; ?></td> <td><?php echo is_numeric($trade['entry_price']) ? '$' . sprintf("%.02f", $trade['entry_price']) : '&ndash;'; ?></td> <td><?php echo is_numeric($trade['current_price']) ? '$' . sprintf("%.02f", $trade['current_price']) : '&ndash;'; ?></td> <td><?php echo (is_numeric($trade['current_price']) && is_numeric($trade['entry_price'])) ? sprintf("%.02f", ($trade['current_price'] - $trade['entry_price']) / $trade['entry_price'] * 100)."%" : ''; ?></td> <td><?php echo is_numeric($trade['buy_under']) ? '$' . sprintf("%.02f", $trade['buy_under']) : '&ndash;'; ?></td> <td><?php echo is_numeric($trade['dividend_yield']) ? sprintf("%.02f", $trade['dividend_yield']) . '%' : '&ndash;'; ?></td> <td><?php echo date('m/d/y', $trade['ex_dividend_date']); ?><?php echo !empty($trade['estimated']) ? ' Est.' : ''; ?></td> <td><?php echo date('m/d/y', $trade['payout_date']); ?></td> <td><?php echo is_numeric($trade['total_dividend']) ? '$' . $trade['total_dividend'] : '&ndash;'; ?></td> </tr> <tr> <td><?php echo $trade['stock_type']; ?></td> </tr> <?php } ?> 

Эта вторая строка, $ trade ['stock_type'], является тем, что заставляет все это делать.

У меня будут комментарии в этой строке, которые пользователь может скрыть или показать, поэтому мне нужен переменный цвет, чтобы пропустить эту строку, и просто примените цвет выше этого. (Что изменяется с каждой строкой в ​​foreach ())