eletor @CSS para segmentar apenas filhos imediatos e não outros descendentes idênticos

Tenho uma lista classificável aninhada que pode ter itens adicionados ou removidos dinamicamente e pode ter n-níveis em profundidade. No aninhamento, um novo elemento ul é injetado em qualquer elemento li selecionado para ser o pai. O estado inicial da lista é algo como o seguinte:

<ul id="parent">
    <li id="One"><a href="" class="listLink"><span class="position">1</span>One</a></li>
    <li id="Two"><a href="" class="listLink"><span class="position">2</span>Two</a></li>
    <li id="Three"><a href="" class="listLink"><span class="position">3</span>Three</a>
        <ul>
            <li id="A"><a href="" class="listLink"><span class="position">1</span>A</a></li>
            <li id="B"><a href="" class="listLink"><span class="position">2</span>B</a></li>
            <li id="C"><a href="" class="listLink"><span class="position">3</span>C</a></li>
            <li id="D"><a href="" class="listLink"><span class="position">4</span>D</a></li>
            <li id="E"><a href="" class="listLink"><span class="position">5</span>E</a></li>
            <li id="F"><a href="" class="listLink"><span class="position">6</span>F</a></li>                    
        </ul>
    </li>   
    <li id="Four"><a href="" class="listLink"><span class="position">4</span>Four</a></li>
    <li id="Five"><a href="" class="listLink"><span class="position">5</span>Five</a></li>
    <li id="Six"><a href="" class="listLink"><span class="position">6</span>Six</a></li>                    
</ul>

Estou usando o MooTools para fazer a classificação, etc., e funciona bem, mas estou tendo problemas para redefinir o texto da posição corretamente na classificação. Todo seletor de CSS que tento usar também incluitodo dos filhos, em vez de apenas os elementos li que pertencem à lista e não pertencem a sublistas. Suponha que, exceto por id, posição e texto, cada elemento li em todas as listas seja idêntico a todos os outros. Existe um seletor para obter apenas os filhos imediatos? Há outra maneira de fazer isso

Tentei alguns seletores de crianças como os mencionados:

ul > li Selecionarátodo li elementos que são filhos de um ul, não apenas os filhos imediatos#parent > li Faz o mesmo que acima.

Aqui está a função que estou executando no momento em que um item é descartado, que não lida com a classificação, que funciona bem, apenas atualizando a posição. Observe que também é a sintaxe do MooTools:

var drop = function(el){
    el.getParents('ul').reverse().each(function(item){
        var posCount = 1;
        item.getElements('li a span[class=position]').each(function(pos){
            pos.set('text', posCount);
            posCount++;
        });
    });
}

Atualmente, alterar qualquer ordem de item no nível principal renumerará tudo de 1 a 12, mesmo as sublistas. A alteração de qualquer item em uma sub-lista fornecerá os números corretos para essa lista, mas fará com que as listas pai contem incorretamente todos os elementos li filhos na numeraçã

Sinto que esse é um truque feio, mas funciona:

var drop = function(){
    var ulCount = 1;
    $('ul').each(function(item){
        if(item.get('id') != 'parent') { 
            item.set('id', 'id-'+ulCount);
        }
        var elId = item.get('id');
        var posCount = 1;
        $(document).getElements('#'+elId+'>li>a>span[class=position]').each(function(pos){
            pos.set('text', posCount);
            posCount++;
        });
        ulCount++;
    });
}

questionAnswers(2)

yourAnswerToTheQuestion