Я хочу к объектам списка выборки, которые являются непосредственными детьми #nav, которые самостоятельно не имеют непосредственных детей с 'активным' классом.
Это - то, что я думаю, что это должно быть всего лишь, это не работает:
$('#nav > li:not(> a.active)')
Вам потребуется использовать функцию jQuery filter
:
$('#nav > li').filter(function() { return !($(this).children().is('.active')); })
Мне очень нравится решение Кена, но только в качестве альтернативы.
Вы можете добавить активный класс к элементам списка вместо ссылок внутри. Тогда ваш селектор может выглядеть так:
$("ul#nav li:not(.active)");
Если вы хотите стилизовать ссылки на основе активного класса, ваш CSS может выглядеть так:
#nav li.active a{background-color:red;}
Для этого jquery есть селектор не
, вы можете сделать что-то вроде
$("#nav > li").children(":not(.active)");