var level = $('#root'),
subs;
do {
level = level.children();
subs = level.filter('.sub');
} while( els.length && !subs.length )
Переменная subs
будет содержать результат.
Это эффективный подход, который сработает, если у вашего #root
окажется .sub
предок.
Вы можете легко превратить его в функцию многократного использования.
function firstLevelOf( root, selector ) {
var level = $(root),
result;
do {
level = level.children();
result = level.filter(selector);
} while( els.length && !result.length )
return result;
}
Используйте это так:
var subs = firstLevelOf( '#root', '.sub' );