чтоб быть более точным, jQuery использует движок Sizzle, а тот в свою очередь не поддерживает nth-of-type.
в jQuery это можно реализовать как $('p:odd') для четных и $('p:even') для нечетных.
А вообще, что селектор :nth-of-type подразумевает под type? Имя тега? Получается, что селектор .class:nth-of-type(2) бессмысленный, потому что не задает какой именно нужно тип выбрать? Или же в данном случае типом будет считаться .class?
Судя по описанию w3c, под type понимается элемент, тоесть тег. www.w3.org/TR/css3-selectors/#nth-of-type-pseudo
Но проверил, в случае описаном вами firefox, safari и chrome выберут второй элемент, если у него есть класс .class
Селекторы всегда относятся к тому элементу, который задан до них. В случае p:nth-of-type(x) это будет тег P, в случае table .info:nth-of-type(x) будет любой тег с классом .info внутри таблиц.
К сожалению ни nth-child, ни nth-of-type с классами и атрибутами не работают — только элементы.
Т.е. если у вас часть строк таблицы скрыты, то нельзя правильно сделать зебру средствами CSS для оставшихся видимых строк с определённым назначенным классом.
Различия между :nth-child и :nth-of-type