Вы не можете. Нет селектора, который имитировал бы вашу отправную точку.
Способ, которым jQuery делает это (в большей степени из-за qsa
поведения, которое им не нравится), заключается в том, что они проверяют, elem
есть ли идентификатор, а если нет, они временно добавляют идентификатор, а затем создают полную строку селектора.
В основном вы бы сделали:
var sel = '> someselector';
var hadId = true;
if( !elem.id ) {
hadID = false;
elem.id = 'some_unique_value';
}
sel = '#' + elem.id + sel;
var result = document.querySelectorAll( sel );
if( !hadId ) {
elem.id = '';
}
Это, конечно, не код jQuery, но, насколько я помню, это в основном то, что они делают. Не только в этой ситуации, но и в любой ситуации, когда вы запускаете селектор из контекста вложенного элемента.
Исходный код для Sizzle