Насколько мне известно, селектор nth-child выбирает только по номеру потомка. Селектор nth-of-type тоже не годится, потому что нечем заменить tr. Если эта задача связана с формированием секций в таблице, то выходом может быть использование для каждой своего tbody:
<tbody>
<tr><td>a</td></tr>
<tr><td>a</td></tr>
<tr><td>a</td></tr>
</tbody>
<tbody>
<tr><td>a</td></tr>
<tr><td>a</td></tr>
<tr><td>a</td></tr>
<tr><td>a</td></tr>
</tbody>
Конечно, такую таблицу немного сложнее генерировать, но всё же я думаю лучше, чем писать class=«odd», class=«even» в каждой строке, к тому же это не приведёт к искажениям после динамического удаления или добавления строк в секцию.