Правда в том, что у jQuery просто нет особенно элегантного способа делать то, что вы хотите. Несмотря на то, что ответ хаоса работает, вы должны задаться вопросом, стоит ли сложный селектор (который будет примерно таким же медленным, как селектор на сложной веб-странице) по сравнению с более подробной, но более быстрой функцией фильтрации, которую вы имеете. Это на самом деле не так уж важно, я просто устаю от особенно длинных, запутанных селекторов, когда я могу этого избежать.
Другой вариант - создать свой собственный селектор, поскольку jQuery потрясающий:
jQuery.expr[':'].parents = function(a,i,m){
return jQuery(a).parents(m[3]).length < 1;
};
$('.foo,.bar').filter(':parents(.baz)');
Карта expr
является частью механизма выбора Sizzle, и документацию можно найти здесь: Пользовательские псевдо-селекторы Sizzle